Как вы обрабатываете паузу и возобновление речи при использовании библиотек Flite?

#iphone

#iPhone

Вопрос:

я разработал пример приложения, в котором я использовал библиотеки Flite для преобразования текста в речь. Но теперь я не могу понять, как я могу приостановить и возобновить речь, используя API / классы Flite, потому что я думаю, что Flite преобразует нашу текстовую строку в wav-файл, а затем, после завершения записи, воспроизводит этот звуковой файл в фоновом режиме. Итак, когда я нажимаю кнопку «Пауза», как я могу узнать, какая часть текста будет преобразована в аудиовыход, чтобы я мог начать с оставшихся текстов при нажатии кнопки «Возобновить».

Комментарии:

1. Доступна ли какая-либо другая бесплатная библиотека с открытым исходным кодом для преобразования текста в речь в iphone sdk, которая поддерживает все функции, такие как управление высотой тона, дисперсией, скоростью и воспроизведением, паузой, возобновлением, остановкой и т.д. и т.п. …?

Ответ №1:

В файле FliteTTS.m вы можете раскомментировать аудиоплеер предварительной загрузки и закомментировать «воспроизведение» AV-плеера. Затем создайте новый метод, который вызывает AV player для воспроизведения. Таким образом, вся ваша строка будет преобразована в файл, и вы сможете воспроизводить и приостанавливать ее по своему желанию.

Если вы спрашиваете, откуда вы знаете, какое слово будет использоваться, когда ваш пользователь нажмет «пауза» — это сложно, поскольку это всего лишь один аудиофайл, вы не можете.

Может быть, вы могли бы отправлять flite TTS каждое слово отдельно, скрывать их и воспроизводить последовательно, сохраняя трек по пути — понятия не имею, будет ли это хорошо звучать.

Или используйте распознавание речи, чтобы прослушать AV-плеер и угадать. Или, может быть, проанализируйте длину строки и время воспроизведения аудиопроигрывателя и угадайте.