Skip to main content

Herramienta CLI para el manejo de modelos TTS

Project description

word2speech

Genera audios a partir de palabras (reales o falsas), para el tratamiento de pacientes con dislexia u otras dificultades específicas de aprendizaje.

Un proyecto de Alejandro Varela de Cora.

Instalación

Se necesita python>=3.12, se recomienda utiliza pipx para la instalación.

$ pipx install word2speech

Configuración

Para usar word2speech necesitas configurar:

  • token: Token de API de speechgen.io
  • email: Email registrado en speechgen.io
  • voice: Voz a utilizar (ej: Alvaro)

Archivo de configuración

Crea ~/.word2speech/config.yml:

token: tu_token_aqui
email: tu_email@domain.com
voice: Alvaro

Inicio rápido

Si no proporcionamos un fichero de configuración mediante el flag --config, la aplicación busca automáticamente primero en la configuración local del proyecto ./.word2speech/config.yml y después en la configuración global del usuario ~/.word2speech/config.yml.

Si no encuentra ningún archivo, los parámetros obligatorios (token, email, voice) deben proporcionarse por línea de comandos.

$ word2speech palabra
[17:19:25]: Generando el audio de la palabra "palabra"
[17:19:26]: Audio generado "out.mp3" (coste: 7, saldo: 61705)

Procesamiento por lotes con JSON

Crea un archivo JSON con el siguiente formato:

{
  "palabras": ["abrazo", "bebida", "órganos"],
  "nopalabras": ["babados", "bacela", "plátaco"]
}

Luego procésalo:

$ word2speech data-reduce.json
[17:19:40]: Generando el audio de la palabra "abrazo"
[17:19:40]: Audio generado "palabras/abrazo.mp3" (coste: 0, saldo: 61705)
[17:19:40]: Generando el audio de la palabra "bebida"
[17:19:40]: Audio generado "palabras/bebida.mp3" (coste: 0, saldo: 61705)
[17:19:41]: Generando el audio de la palabra "órganos"
[17:19:41]: Audio generado "palabras/organos.mp3" (coste: 0, saldo: 61705)
[17:19:41]: Generando el audio de la palabra "babados"
[17:19:41]: Audio generado "nopalabras/babados.mp3" (coste: 0, saldo: 61705)
[17:19:41]: Generando el audio de la palabra "bacela"
[17:19:42]: Audio generado "nopalabras/bacela.mp3" (coste: 0, saldo: 61705)
[17:19:42]: Generando el audio de la palabra "plátaco"
[17:19:42]: Audio generado "nopalabras/plataco.mp3" (coste: 0, saldo: 61705)

Uso de subcomandos

word2speech tiene disponibles 2 subcomandos, deletrear y prosodia:

  • deletrear: Genera el audio de una palabra sílaba por sílaba
    $ word2speech deletrear albaricoque
    [17:29:09]: Generando audio deletreado por sílabas de la palabra "albaricoque"
    [17:29:09]: Texto deletreado: al <break time="250ms"/> ba <break time="250ms"/> ri <break time="250ms"/> co <break time="250ms"/> que
    [17:29:13]: Audio deletreado generado "out_deletreo.mp3" (coste: 95, saldo: 61610)
    
    # El flag --include-word añade la palabra deletreada al final de audio
    $ word2speech deletrear albaricoque --include-word
    [17:30:51]: Generando audio deletreado por sílabas de la palabra "albaricoque"
    [17:30:51]: Texto deletreado: al <break time="250ms"/> ba <break time="250ms"/> ri <break time="250ms"/> co <break time="250ms"/> que <break time="1s"/> albaricoque
    [17:30:53]: Audio deletreado generado "out_deletreo.mp3" (coste: 124, saldo: 61486)
    
  • prosodia: Genera una versión de la palabra con mayor énfasis en la prosodia de la misma mediante el uso de SSML para enriquecer la palabra y la trancripción fonética IPA.
    $ word2speech prosodia albaricoque
    [17:35:20]: IPA generado con epitran para 'albaricoque': albaɾikoke
    [17:35:20]: Generando audio con prosodia mejorada de la palabra "albaricoque"
    [17:35:20]: SSML generado: <prosody rate="medium" pitch="medium" volume="medium"><phoneme alphabet="ipa" ph="albaɾikoke">albaricoque</phoneme></prosody>
    [17:35:21]: Audio con prosodia generado "out_prosodia.mp3" (coste: 125, saldo: 61361)
    

Limitación windows

En Windows debido a la codificación de la consola por defecto pueden surgir problemas a la hora de ejecutar el subcomando prosodia, la solución pasa por forzar la codificación UTF-8

> set PYTHONUTF8=1

Podemos establecer la codificación UTF-8 de forma permanente con:

> setx PYTHONUTF8 1

Nota: Después de ejecutar setx, es necesario reiniciar la terminal (o abrir una nueva) para que el cambio tome efecto.

Enlaces de interés:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

word2speech-2.0.0.tar.gz (20.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

word2speech-2.0.0-py3-none-any.whl (24.4 kB view details)

Uploaded Python 3

File details

Details for the file word2speech-2.0.0.tar.gz.

File metadata

  • Download URL: word2speech-2.0.0.tar.gz
  • Upload date:
  • Size: 20.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for word2speech-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e203942bf316377bf423eb7f62bb24a63232c51d19dd01ff37b6a6166801718c
MD5 7784d977af9901212b21061a04af0a22
BLAKE2b-256 c8d5c98dd8db1c4b61253f29be5ccdf22db4ed9a25162268f2af30229f09d4a1

See more details on using hashes here.

File details

Details for the file word2speech-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: word2speech-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for word2speech-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 751aaef48980085fdaa7b0e5ea5acf29d8a5e1b4b0021555edde880d05a39cb8
MD5 d14a9abaef830ae32281b4c7e4388e16
BLAKE2b-256 84eae7623244671a5095bf2fb181d76d2b5131e7f70a3a7546a6f6987f578c25

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page