Поток вашего приложения будет выглядеть так:
- На стороне клиента: пользователь вводит текст в форму, а форма отправляет запрос на сервер
- Сервер: может быть на python или на любом другом языке / фреймворке. Получает http-запрос с текстом.
- Сервер: запускает преобразование текста в речь либо с использованием чистой библиотеки Python, либо путем запуска подпроцесса для утилиты, которая может генерировать речь в формате wav / mp3 / aiff / etc
- Сервер: отправляет ответ HTTP обратно потоковым файлом с типом mime клиенту
- Клиент: получает ответ http и воспроизводит содержимое
В частности, о шаге 3 ...
У меня нет конкретных советов по поводу наиболее понятного программного обеспечения для синтеза речи с открытым исходным кодом, но я могу сказать, что это не обязательно должен быть чистый python или даже вообще python. Большинство из этих пакетов имеют некоторую форму утилиты командной строки, которая берет stdin или файл и создает аудиофайл в качестве вывода. Вы просто запустите эту утилиту в качестве подпроцесса для генерации файла и затем вернете файл обратно в ответ http.
Если вы решите использовать существующий веб-сервис, обеспечивающий преобразование текста в речь через API (iSpeech), то шаг 3 будет заменен на отправку вашего собственного http-запроса на стороне сервера в iSpeech с получением ответа и в значительной степени переадресация этого ответа обратно на исходный клиентский запрос, как прокси. Я бы сказал, что выгода заключается не в том, чтобы поддерживать собственное решение для синтеза речи или получать лучшее качество, которое вы могли бы получить из открытого источника ... но недостатком является то, что у вас, вероятно, будет больше задержка во времени отклика, поскольку ваш сервер имеет сделать свой собственный внешний http-запрос и сначала загрузить данные.