Участник:Petr-akhlamov/Наработки по речи: различия между версиями
Строка 159: | Строка 159: | ||
Настроить /etc/speech-dispatcher/modules/festival.conf | Настроить /etc/speech-dispatcher/modules/festival.conf | ||
====Использование RHVoice==== | |||
apt-get install RHVoice | |||
Создаем | |||
/etc/speech-dispatcher/modules/rhvoice.conf | |||
Наполняем | |||
RHVoiceDataPath "/usr/share/RHVoice" | |||
RHVoiceConfigPath "/etc/RHVoice/" | |||
RHVoicePunctuationMode | |||
#RHVoicePunctuationList "@+_" | |||
RHVoiceDefaultVoice "Aleksandr" | |||
RHVoiceDefaultVariant "Pseudo-English" | |||
Debug |
Версия от 18:32, 23 сентября 2024
Словари
Вот, что получилось по озвучке в Словарях:
Есть три словаря:
- GoldenDict
- QstarDict
- StarDict
Есть ограниченный набор озвученных слов:
- WyabdcRealPeopleTTS
Файлы TTS лежат в:
/usr/share/WyabdcRealPeopleTTS /usr/share/OtdRealPeopleTTS
Есть файл словарей:
- stardict-slovnyk_en-ru
- stardict-slovnyk_ru-en
- stardict-quick_en-ru
- stardict-quick_ru-en
Работать будем с StarDict, потому что именно там получилось завести озвучку.
Установка
# apt-get install startdict # apt-get install stardict-slovnyk_en-ru stardict-slovnyk_ru-en stardict-quick_en-ru stardict-quick_ru-en
Попытки сделать озвучку
Где озвучка работает без Festival
StartDict/GoldenDict. В настройках звука программы.
английские слова читаются при:
- goldendict - использовать встроенный плеер
- stardict - aplay и все снято
Разборки с Festival
Первая попытка
if grep [аяоёуюэеыи]' then festival --tts --language russian' else festival --tts'
Попытка исправления синтаксиса нейросетью
Сгенерировал так:
bash if echo "$GDWORD" | grep -q '[аяоёуюэеыи]'; then echo "$GDWORD" | festival --tts --language russian else echo "$GDWORD" | festival --tts fi
В одну строчку сделал так:
if echo "$GDWORD" | grep -q '[аяоёуюэеыи]'; then echo "$GDWORD" | festival --tts --language russian else echo "$GDWORD" | festival --tts fi
Звук в словарях не работает. Консоль ругается на синтаксис.
Формат чтения словаря
Как я думал читает слова фестиваль в словарях:
echo "$GDWORD" | festival --tts
Как читает фестиваль на самом деле:
echo %s | festival --tts
Попытки сборки единой команды
Проверяем в консоли.
Вводим значение переменной:
s=home
s=Петя
С каждой переменной выполняем каждую команду
Команды для Словарей:
if echo %s | grep -q '[аяоёуюэеыи]'; then echo %s | festival --tts --language russian else echo %s | festival --tts fi
if echo %s | grep -q '[а-яА-я]'; then echo %s | festival --tts --language russian else echo %s | festival --tts fi
if (echo %s | grep -q '[а-яА-я]'); then (echo %s | festival --tts --language russian) else (echo %s | festival --tts) fi
^такая сложная команда в словаре не срабатывает
Команды для консоли:
if echo $s | grep -q '[аяоёуюэеыи]'; then echo $s | festival --tts --language russian else echo $s | festival --tts fi
if echo $s | grep -q '[а-яА-я]'; then echo $s | festival --tts --language russian else echo $s | festival --tts fi
if (echo $s | grep -q '[а-яА-я]*'); then (echo $s | festival --tts --language russian) else (echo $s | festival --tts) fi
StartDict
У Startdict переменная %s
Читает раздельно по english и Russian
echo %s | festival --tts --language russian
echo %s | festival --tts
Команда "на вместе" в startdict не работет:
if (echo %s | grep -q "[а-яА-я]*"); then (echo %s | festival --tts --language russian) else (echo %s | festival --tts) fi
Зато работает в консоли:
if (echo $s | grep -q "[а-яА-я]*"); then (echo $s | festival --tts --language russian) else (echo $s | festival --tts) fi
Итого
читает на англицком: echo %s | festival --tts
читает на русском:
echo %s | festival --tts --language russian
- в startdict читает по раздельности
- goldendict не видит команду
- qstardict не видит команду
Речь
Некоторые заметки
Spech dispathcer от Ubuntu:
[Unit] Description=Speech-Dispatcher, common interface to speech synthesizers [Service] Type=forking User=speech-dispatcher PIDFile=/run/speech-dispatcher/speech-dispatcher.pid ExecStart=/usr/bin/speech-dispatcher -d --pid-file /run/speech-dispatcher/speech-dispatcher.pid ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target Alias=speech-dispatcher.service
Установка
- Основной движок:
# apt-get install speech-dispatcher
- Утилиты Speech Dispatcher:
# apt-get install speech-dispatcher-utils
Конфигурация движка и тест:
spd-conf #настройка spd-say #произнести текст (по-умолчанию только на английском) sdpsend #отправка на какой-то сервер с портом
Движки
Список движков по-умолчанию:
$ spd-say -O OUTPUT MODULES flite espeak
Использование festival
Нужно установить festival-freebsoft-utils
Настроить /etc/speech-dispatcher/modules/festival.conf
Использование RHVoice
apt-get install RHVoice
Создаем
/etc/speech-dispatcher/modules/rhvoice.conf
Наполняем
RHVoiceDataPath "/usr/share/RHVoice" RHVoiceConfigPath "/etc/RHVoice/" RHVoicePunctuationMode #RHVoicePunctuationList "@+_" RHVoiceDefaultVoice "Aleksandr" RHVoiceDefaultVariant "Pseudo-English" Debug