API de texto de texto a discurso para múltiples motores TTS.
Puede enviar un texto para convertirse en audio, utilizando diferentes motores TTS y efectos de sonido. Luego, lo escuchará en su dispositivo de audio local o recibirá el archivo de audio resultante.
Primero, debe instalar los motores TTS compatibles:
apt install python3 sox libsox-fmt-mp3
pip install google_speechapt install python3 sox libsox-fmt-mp3
pip install gTTSapt install festival festvox-ellpc11kapt install espeak También debe instalar NodeJS y NPM , y luego, simplemente ejecute npm install y npm start . La API ahora debería estar ejecutándose en http://localhost:3000 .
O simplemente puede usar la imagen de Docker PedroetB/TTS-API, que ya tiene todas las dependencias configuradas.
El único requisito es tener Docker instalado. Entonces, puedes ejecutar:
docker run --rm -d --name tts-api --device /dev/snd -p 3000:3000 pedroetb/tts-api La API se ejecutará y se puede acceder en http://localhost:3000 .
Alternativamente, puede implementarlo en un clúster de enjambre de Docker utilizando docker compose (ya incluido en Docker si usa la versión moderna) y docker swarm (Crear clúster de enjambre primero):
cd deploy
# Deploy Caddy service
env $( grep -v ' ^[#| ] ' .env | xargs )
TRAEFIK_DOMAIN=change.me
docker stack deploy
-c compose.caddy.yaml
tts-api
# Run TTS-API container
docker compose
-f compose.tts-api.yaml
-p tts-api
up -d El servicio está preparado para ser proximado inversamente con Traefik y accesible en el dominio tts.${TRAEFIK_DOMAIN} . Cómo ejecutar Traefik no se describe aquí, consulte su sitio oficial.
El proxy necesita un poco de ayuda de Caddy , porque Docker Swarm no es compatible con la configuración de los dispositivos (requerido para usar capacidades de sonido) y Traefik no puede trabajar con Docker Containers y Docker Swarm Services de una vez. De esta manera, solo el servicio de Caddy está expuesto utilizando Traefik y el contenedor tts-api solo es accesible a través de la proxima inversa proporcionada por Caddy (la misma forma en que Traefik es una proximación inversa a Caddy ).
Tanto el contenedor y el servicio de Docker pueden ejecutarse en diferentes hosts, porque pueden comunicarse a través de una red de superposición de Docker. Ejecute tts-api Docker Container en el host que tiene altavoces, para que pueda escuchar el discurso.
No olvide editar la variable de entorno TRAEFIK_DOMAIN antes de implementar.
Cuando se ejecuta, la API recibirá solicitudes de publicación en http://localhost:3000 . Puede usar su cliente REST favorito para enviar una solicitud o usar el formulario incorporado.
Ambos modos (reproducir o descargar audio) están disponibles utilizando diferentes códigos de voz, seleccione uno de acuerdo con sus necesidades.
Vaya a http://localhost:3000 con su navegador, llene el formulario con datos y envíelo. Solo eso.
Puede enviar una solicitud de publicación a http://localhost:3000 siguiendo este esquema:
application/json{ "voice": "google_speech", "textToSpeech": "hello world", "language": "en", "speed": "1" } Por ejemplo, usando curl :
# Play audio
curl http://localhost:3000
-d ' { "voice": "google_speech", "textToSpeech": "hello world", "language": "en", "speed": "1" } '
-H ' Content-Type: application/json '
# Download audio file
curl http://localhost:3000
-d ' { "voice": "gtts_file", "textToSpeech": "hello world", "language": "en", "speed": "1" } '
-H ' Content-Type: application/json '
-o ' output.mp3 ' Google Speech es una herramienta simple de línea de comando multiplataforma para leer texto usando Google Translate TTS (texto a discurso) API.
Debe estar en línea para comunicarse con los servidores de Google.
Obtenga más información en https://github.com/desbma/googlespeech
Google Text-to-Speech (GTTS) es una biblioteca de Python y una herramienta CLI para interactuar con la API de texto a voz de Google Translate.
Debe estar en línea para comunicarse con los servidores de Google.
Obtenga más información en https://github.com/pndurette/gtts
Festival es un banco de trabajo de síntesis de voz multilingüe de software libre que se ejecuta en múltiples plataformas que ofrecen texto de caja negra al habla, así como una arquitectura abierta para la investigación en la síntesis del habla.
Funciona fuera de línea.
Obtenga más información en http://www.cstr.ed.ac.uk/projects/festival/ y http://festvox.org/festival/
Espeak es un sintetizador de discurso de software de código abierto compacto para inglés y otros idiomas, para Linux y Windows.
Funciona fuera de línea.
Obtenga más información en http://espeak.sourceforge.net/
Este proyecto se publica bajo la licencia MIT.