Страницы

Поиск по вопросам

Показаны сообщения с ярлыком text-to-speech. Показать все сообщения
Показаны сообщения с ярлыком text-to-speech. Показать все сообщения

среда, 22 января 2020 г.

Python синтез речи на линукс

#python #python_3x #text_to_speech


Как можно сделать на питоне синтез речи с нормальным синтезатором. Пробовал я gtts,
но он не подошел(он только с поключением к интернету работает) Так же пробовал pyttsx,
он идеален, но синтезатор голоса который он потребовал к установки, очень корявый и
непонятно, что он произносит.
    


Ответы

Ответ 1



Попробуй Festival, стандартный голос может противный, но говорит четко. Этот патч поможет от undefined symbol: ... pip3 install --upgrade --user https://github.com/alex-eri/pyfestival/archive/patch-1.zip#festival python3 import festival festival.sayText('hello') Если звук не воспроизводится попробуй: import festival festival.textToWavFile('hello') Эта функция сохраняет файл с уже готовым текстом. Также она возвращает путь к файлу строкой.

суббота, 6 июля 2019 г.

Зачем распознавать отдельные фонемы?

Изучая распознавание речи, наткнулся на данную статью. В ней происходит распознавание фонем, а затем их объединение в слова.
Зачем так делать, ведь можно разбить входящий поток на слова, затем сгенерировать MFCC для них и сравнивать уже MFCC со словарем через нейронную сеть? Или так нельзя?


Ответ

Потому что в аудиопотоке нет такого понятия как слово/слова. Есть поток аудиоряда и выделить в нем слова без использования тех же нейронных сетей очень сложно - разные люди обладают разным произношением, мелодикой, скоростью произношения и т.д. Иногда целая фраза/предложение звучит слитно (без пауз), в других случаях люди делают паузы при произношении единственного слова.
В общем если бы было легко разбить аудиопоток на слова, то задача распознавания речи сильно упростилась бы...

среда, 17 апреля 2019 г.

Сохранение и воспроизведение mp3-файла, полученного по HTTP

Необходимо синтезировать русскую речь на Python 3.6. Решил воспользоваться Yandex SpeechKit. В документации сказано, что в качестве ответа сервер возвращает звуковой файл в заданном в запросе формате (в моем случае mp3). Как дальше можно сохранить или воспроизвести этот файл?


Ответ

Для того, чтобы воспроизвести аудио, нужно его сначала сохранить. Это делается очень просто с помощью библиотеки requests и pyglet
import requests import pyglet # ... Ваш код text_to_speech = '' # текст, который будет воспроизведён request = requests.get('https://tts.voicetech.yandex.net/tts', params={'text': text_to_speech}) with open('foo.mp3', 'wb') as file: file.write(request.content) song = pyglet.media.load('foo.mp3') song.play() pyglet.app.run()
Без сохранения в файл, к сожалению, сделать немногим сложнее, в pyglet я такой "фичи" не нашёл. Может потому что плохо искал, не знаю Но для таких целей мне подошёл GStreamer. Правда с установкой придётся немного повозиться, т.к. на данный момент очень мало актуальных инструкций в интернете.