- Существуют ли программы под Linux для чтения текста голосом?
- Menestrel — приложение для озвучивания текстов на русском языке
- TTS движки для Ubuntu Linux (Text-to-Speak)
- Демо примеры озвучки
- RHVoice
- ESpeak
- FestVox
- Pocketsphinx. Распознавание речи и голосовое управление в Linux
- Введение
- Описание и установка
- Базовое использование
- Адаптация звуковой модели
- Тестирование адаптации
- Русский язык в Pocketsphinx
- Реализация голосового управления
- Программы-говоруны в Linux Mint
- Установка wine из PPA
- Настройка WinTricks
- Балаболка и Говорун+
Существуют ли программы под Linux для чтения текста голосом?
Здравствуйте. Существуют ли для Linux (Debian/Ubuntu) какие-либо программы с GUI, которые могут проговаривать русским голосом загруженный текст?
Ой, надо с GUI, прочитал только заголовок. Тогда не знаю, какая-нибудь морда к тому же festival наверняка есть
Вообще есть KDE’шный Jovie. А лучший синтезатор — RHVoice.
Пытался как то ихнюю «Алёну» заставить выговаривать слово «серверная», не очень удачно.
У них в доках, которые были в SDK, лажовые описания синтаксиса лежали (ну, для подсказок, ударения всякие там). Помнится, долго боролся с их техподдержкой, т.к. у нас лицензия была какая-то не совсем правильная :), но выпытал у них документацию. С ней уже ударения ставились правильно. А по дефолту было стремно. Не знаю, как сейчас, это было лет 5 назад. Там на сайте демо есть, но лень проверять, есть ли русский язык вообще. Фестиваль почему-то не стали использовать, решение не я принимал, уж не знаю в чем причина.
Источник
Menestrel — приложение для озвучивания текстов на русском языке
Menestrel — приложение для озвучивания текстовых документов, веб-страниц и электронных книг на русском языке, разработанная на основе синтезаторов речи Festival и ru_tts.
Menestrel поддерживает следующие форматы файлов:
- обычные текстовые файлы с кодировками UTF-8, CP1251, KOI8-R, ISO-8859-5;
- HTML-файлы;
- файлы в формате OpenDocument (ODT);
- файлы в формате Microsoft Document (DOC);
- файлы в формате FictionBook (FB2)
Файлы всех вышеперечисленных форматов могут быть предварительно помещены в ZIP-архив.
Основные возможности приложения:
- озвучивание:
- файлов указанных выше форматов;
- скопированных и вставленных в поле воспроизведения фрагментов текста;
- набранных в поле воспроизведения текстов (с возможностью сохранения набранного);
- отображение произносимого текста в окне программы и выделение произносимого предложения;
- сохранение при завершении работы и восстановление при следующем запуске позиции маркера, в которой было завершено озвучивание;
- установка неограниченного числа закладок и переход по ним, поиск текста;
- импорт произнесённого текста в звуковые файлы формата WAV или MP3 и списка воспроизведения для использования в качестве аудио-книг.
Проект состоит из двух приложений: Menestrel и Skomoroh, разница между ними в том, что Menestrel основан на базе синтезатора речи Festival, а Skomoroh — на базе синтезатора речи ru_tts.
Приложения написаны на С++ с использованием Qt 4.7 в интегрированной среде разработки QtCreator 2.1.
Благодаря кроссплатформенности Festival, Menestrel доступен как в версии для Linux, так и для Windows.
Skomoroh поставляется исключительно для Linux.
Все исходные тексты в виде проектов QtCreator размещены на странице проекта на sourceforge.
Источник
TTS движки для Ubuntu Linux (Text-to-Speak)
Голосовой движок (озвучивание русского текста) может использоваться для разных задач, например можно слушать книги без их предварительной озвучки, прослушивать входящие тестовые сообщения, да и в общем, можно вести любой диалог с компьютером посредством голосового взаимодействия, на базе чего строить разные сервисы и умные системы.
Я расцениваю TTS движки только в качестве одной из компонент для реализации системы «Умного дома». Книги на русском они читают терпимо-ужасно, озвучивать сообщения и прочие обрывки информации мне не нужно. Мне нужен TTS для решения единственной задачи — обратная связь с системой умного дома.
Ниже я приведу список существующих TTS движков и субъективную оценку качества озвучки русского текста.
Демо примеры озвучки
- Festival;
- Nuance Loquendo (Demo ) — голос Olga лучший на текущий момент, но штука платная;
- RHVoice (Demo, Установка RHVoice );
- Open Mary (Demo ) — ниже среднего;
- Espeak (Demo) — с русским все очень плохо;
- Платные движки (Demo );
- Acapela (Demo ) — голос Alena, качество не особо;
RHVoice
Довольно хороший TTS движок от Ольги Яковлевой (Github ).
Пример консольной команды:
ESpeak
FestVox
Это ще один TTS. Поддерживает русский текст. Голосовой пакет весит 196MB. Виндовые бинарники тут .
На многих форумах рекомендуют править конфиг
Источник
Pocketsphinx. Распознавание речи и голосовое управление в Linux
— Всё в порядке, Лёня?
Динамики отрегулированы на максимум, я морщусь, отвечаю:
— Да. Тише звук.
— Звук — тише, — соглашается «Виндоус-Хоум», — тише, тише…
— Хватит, Вика
С.Лукьяненко, «Лабиринт отражений»
Введение
В данной статье я не буду касаться Julius, поскольку гайдов по его использованию (в том числе и в Рунете) хватает. Речь будет идти о CMU Sphinx.
Описание и установка
Не забудьте после установки выполнить:
Для работы с /dev/dsp установим согласно FAQ пакет oss-compat.
Базовое использование
/sphinx.
Синтаксис нашей команды таков:
-argflie: имя файла в текущей директории, содержащего все аргументы.
stderr для удобства перенаправим в файл.
Содержимое argfile:
-hmm: путь к каталогу, содержащему файлы акустической модели (шаблоны отдельных звуков).
-lm: путь к файлу триграммной языковой модели (можете почитать здесь).
-dict: путь к файлу словаря произношения.
-cepdir: путь к каталогу со звуковыми файлами. Будьте внимательны: если вы вносите -cepdir в файл аргументов, то сокращенный путь
/sphinx обрабатывается неправильно: приходится писать полный путь. Если вы будете прописывать аргумент после команды, то можете использовать сокращенный путь.
-ctl: файл с именами обрабатываемых файлов. Файл goforward.raw мы возьмем из комплекта исходников pocketsphinx (там есть еще пару файлов *.raw — можете распознать и их).
-cepext: расширение обрабатываемых файлов
-adcin: указатель принадлежности обрабатываемого файла к raw.
-hyp: имя файла, в который будет выведен распознанный текст.
Аргументы с путями к файлам моделей указывать обязательно. Помните, что многие параметры заданы по умолчанию (смотрите stderr). Поэтому для работы с файлом *.raw необходимо принудительно указать расширение, иначе будет использован параметр по умолчанию — расширение .mfc (а таких файлов у нас в базовом примере, естественно, нету — будут сыпаться ошибки).
В результате исполнения у нас в файле outname будет следующее содержимое:
Параллельно можете посмотреть, откомпилировать и запустить в каталоге с файлом goforward.raw программку аналогичного назначения на C (пример от разработчиков).
Для проверки на своих примерах я решил не мудрствовать и воспользовался sox (проверьте, установлен ли этот пакет у вас).
Писать звук будем следующим образом (можете почитать man sox ):
— для raw
Окончание записи по Ctrl+C .
У меня sox при этом ругался на невозможность использования частоты дискретизации: can’t set sample rate 16000; using 48000 . Учтите: нагло лжет — на самом деле все в порядке.
Я писал и распознавал raw и wav на различных примерах из подключенных словарей — все распознавалось вполне приемлимо.
Адаптация звуковой модели
Скачиваем по первой ссылке предлагаемые файлы в отдельную директорию, в которой и будем работать.
Теперь надиктуем предложения из файла arctic20.txt по образцу: у вас должно получиться двадцать файлов, названных по порядку согласно схеме arctic_0001.wav . arctic_0020.wav .
Чтобы упростить запись, воспользуемся предложенным скриптом:
Соответственно, чтобы прослушать полученное, выполним:
Скопируем акустическую модель (с которой мы и работали) из /usr/local/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k в нашу рабочую директорию.
Теперь создадим файлы акустических особенностей (напоминаю: работаем в директории с файлами *.wav).
В результате получаем файлы *.mfc.
Скачиваем экстра-пак (89,0 МБ); файл под названием mixture_weights из него, расположенный в pocketsphinx-extra/model/hmm/en_US/hub4_wsj_sc_3s_8k.cd_semi_5000 помещаем в каталог с акустической моделью.
Также необходимо конвертировать mdef-файл акустической модели в текстовый формат:
Теперь, согласно терминологии гайда по адаптации, соберем накопленные данные. Скопируем утилиту bw из /usr/local/libexec/sphinxtrain/bw в рабочий каталог (перед этим не забудьте установить sphinxtrain!).
Запускаем и видим:
SYSTEM_ERROR: «corpus.c», line 339: Unable to open arctic20.fileids for reading: No such file or directory
Очевидно, правая рука у разработчиков не ведает, что творит левая (про неактуальность части документации я уже не говорю).
Переименовываем в рабочем каталоге файл arctic20.listoffiles в arctic20.fileids
Теперь все работает.
Произведем MLLR-адаптацию (эффективна для ограниченного объема данных в модели):
Эта команда создаст файл адаптационных данных mllr_matrix .
Теперь при распознавании с адаптированной моделью можно добавлять параметр -mllr /path/to/mllr_matrix .
Параллельно произведем другой метод адаптации: MAP.
Сделаем копию модели:
И произведем MAP-адаптацию:
Теперь создадим sendump файл, отличающийся меньшим размером:
Тестирование адаптации
Проверяем (помните, что адаптация не приведет к стопроцентно верному результату: адаптированные модели будут точно так же ошибаться; плюс в том, что они будут делать это реже. Мои вполне наглядные записи были сделаны далеко не с первой попытки: было достаточно записей, где ошибались все модели):
1. Распознавание с помощью базовой модели:
2. Распознавание с помощью модели с MLLR-адаптацией: при указании параметром -mllr пути к моей матрице происходила ошибка сегментирования (копаться я не стал). При распознавании без этой опции результат полностью идентичен результату оригинальной модели.
Впрочем, в мануале заявлено, что MLLR-адаптация лучше всего подходит для непрерывной модели (т.е. для Sphinx4).
3. Распознавание с помощью модели с MAP-адаптацией:
Как можно убедиться, результат полностью идентичен записи. Адаптация реально работает!
Русский язык в Pocketsphinx
Скачаем отсюда русские модели, созданные на voxforge. На разнообразие моделей можно посмотреть здесь и просто в интернетах.
Реализовывать пример голосового управления компьютером мы будем на русском, а значит нам нужны собственная языковая модель и собственный словарь (вероятнее всего, части наших слов в распространенных примерах не будет).
Создание собственной статической языковой модели
Далее создаем словарный файл:
Создаем языковую модель в arpa-формате:
И создаем DMP-модель.
Создание собственного словаря
Тащим с гитхаба утилиты:
Переходим в каталог ./yourdir/text2dict и создаем там текстовый файл my_dictionary с вашим списком слов (каждое новое слово — с нового абзаца).
И вот ваш словарь создан.
Теперь пробуем распознавать слова, присутствующие в словаре (благо, в нашем примере их немного). Не забудьте указать в аргументах собственную языковую модель и словарь — все должно работать. При желании можно произвести адаптацию акустической модели (сразу предупреждаю: при использовании утилиты bw в процессе адаптации для большинства акустических моделей опция -svspec не нужна ).
Использование JavaScript Grammar File вместо статической языковой модели
«|» обозначает условие выбора. Т.е. мы можем сказать «тише» или «закрыть окно». Правда, по сравнению с использованием языковой модели есть один минус: говорить нужно гораздо членораздельнее.
Созданный jsgf-файл указываем с параметром -jsgf (параметр -lm в таком случае не нужен).
Реализация голосового управления
Моей целью не было реализовать крутой интерфейс управления: здесь все будет очень примитивно (если есть желание и возможность, можете посмотреть на заброшенный проект Gnome Voice Control).
Действовать будем следующим образом:
1. Пишем команду, распознаем её.
2. Передаем распознанный текст в файл, в соответствии с ним выполняем команду.
В качестве тестовых команд будем использовать уменьшение и увеличение громкости звука.
Внимательно почитав мануал к sox, я решил оканчивать запись по истечении секунды тишины с порогом тишины в 3.8% (порог явно является сугубо индивидуальным значением и зависит от вашего микрофона и окружающей обстановки).
К сожалению, я не нашел в pocketsphinx_batch параметр вывода только для распознанных слов, поэтому я воспользуюсь инструментом sed :
Эта конструкция удалит из строки вида «наша команда (audio -4023)» пробел перед открывающей скобкой, её саму и все последующее содержимое. В результате мы получим строку вида «наша команда», что нам и нужно.
Вот сам скрипт:
Скрипт в ответ на команды «тише» или «громче» выполняет соответствующие действия с сигнализацией через notify-send.
К сожалению, работать он будет только при запуске из терминала (иначе звук не пишется). Впрочем, представление о голосовом управлении он дает (возможно, вы предложите лучший метод).
Источник
Программы-говоруны в Linux Mint
#1 — 28 января 2020 в 11:41 |
Установка wine из PPA
Сначала для 64 битных систем необходимо добавить поддержку архитектуры i386:
sudo dpkg —add-architecture i386
Чтобы добавить репозиторий wine ubuntu выполняем:
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add —
sudo apt-add-repository ‘deb http://dl.winehq.org/wine-builds/ubuntu/ bionic main’
sudo apt-get update
Затем можно устанавливать последнюю стабильную версию:
sudo apt install winehq-stable
Посмотреть версию wine:
wine —version
Запускаеем файл конфигурации wine:
winecfg
Начнётся установка Wine Mono и Wine Gecko
В насторойках wine устанавливаем работу с Windows XP
Устанавливаем winetricks:
sudo apt-get install winetricks
Настройка WinTricks
1) Запускаем WinTricks из консоли:
winetricks
2) Появляется окно «Winetricks — выберите путь wine (wineprefix)»
жмём «OK»
3) Во втором окне «Winetricks — текущий путь для wine (wineprefix)»
выбираем пункт: Установить библиотеку Dll или компанент Windows
жмём «OK»
4) Установливаем DLL библиотеки windows:
d3dx9
msvcirt
speechsdk
vcrun2008
vcrun2010
В выпавшем окне на немецком языке жмём «Ja»
5) Появляется окно установки Microsoft Speech SDK 5.1
жмём «Nent»
соглашаемся с лицензией
вводим User Name
устанавливаем
Также можно установить Windows-шрифты в wine:
В окне «Winetricks — текущий путь для wine (wineprefix)»
выбираем пункт «Установить шрифт»
«OK»
выбираем «corefonts»
«OK»
Балаболка и Говорун+
В нём находится:
— Балаболка 2.15.0
— Говорун+
— Голосовые движки
— Персонажи
— SpeechAPI
Распаковываем и устанавливаем:
1) SAPI4, SAPI5
2) Голосовые движки «Николай», «Милена», «Юрий»
3) Персонажи для Говоруна (запускаем файлы из папки exe)
4) Ставим Балаболку
5) Ставим Говорун+
6) Из архива Говорун+ копируем «Наборы фраз» в корень папки с программой, установленной в wine
Чтобы войти в wine на диск С:Windows (папка drive_c) выбираем во втором окне wintricks пункт «Проводник файлов»
Персонажи находятся здесь: .wine\drive_c\windows\msagent\chars
Говорун+ в папке: .wine\drine_c\Program Files(x86)\Говорун+
__________________________________________________________________
Источник