Участник:Petr-akhlamov/Наработки по речи: различия между версиями
Строка 147: | Строка 147: | ||
spd-say #произнести текст (по-умолчанию только на английском) | spd-say #произнести текст (по-умолчанию только на английском) | ||
sdpsend #отправка на какой-то сервер с портом | sdpsend #отправка на какой-то сервер с портом | ||
===Движки=== | |||
Список движков по-умолчанию: | |||
$ spd-say -O | |||
OUTPUT MODULES | |||
flite | |||
espeak | |||
===Использование festival=== | ===Использование festival=== | ||
Нужно установить festival-freebsoft-utils | Нужно установить festival-freebsoft-utils |
Версия от 18:11, 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