Back to Ebook2audiobook

📚 ebook2audiobook (E2A)

readme/README_spa.md

26.6.933.2 KB
Original Source

📚 ebook2audiobook (E2A)

Conversor CPU/GPU de libro electrónico a audiolibro con capítulos y metadatos

usando motores TTS avanzados y mucho más.

¡Admite clonación de voz y 1158 idiomas!

[!IMPORTANT] Esta herramienta está destinada a usarse únicamente con libros electrónicos sin DRM y adquiridos legalmente.

Los autores no se hacen responsables de ningún uso indebido de este software ni de las consecuencias legales que de ello se deriven.

Utiliza esta herramienta de forma responsable y conforme a todas las leyes aplicables.

¡Gracias por apoyar a los desarrolladores de ebook2audiobook!

Ejecución local

<a href="https://github.com/DrewThomasson/ebook2audiobook">

</a><a href="https://hub.docker.com/r/athomasson2/ebook2audiobook">

</a>

Ejecución remota

Interfaz gráfica (GUI)

<details> <summary>Haz clic para ver imágenes de la GUI web</summary> </details>

Demos

Demo de la nueva voz por defecto

https://github.com/user-attachments/assets/750035dc-e355-46f1-9286-05c1d9e88cea

<details> <summary>Más demos</summary>

Voz ASMR

https://github.com/user-attachments/assets/68eee9a1-6f71-4903-aacd-47397e47e422

Voz de día lluvioso

https://github.com/user-attachments/assets/d25034d9-c77f-43a9-8f14-0d167172b080

Voz Scarlett

https://github.com/user-attachments/assets/b12009ee-ec0d-45ce-a1ef-b3a52b9f8693

Voz David Attenborough

https://github.com/user-attachments/assets/81c4baad-117e-4db5-ac86-efc2b7fea921

Ejemplo

</details>

README.md

Tabla de contenidos

Características

  • 🔧 Motores TTS admitidos: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • 📚 Convertir múltiples formatos de archivo: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • 💻 Área de texto para convertir directamente un texto corto en audio

  • 🔍 Escaneo OCR para archivos con páginas de texto en forma de imágenes

  • 🔊 Texto a voz de alta calidad, desde casi en tiempo real hasta una voz casi real

  • 🗣️ Clonación de voz opcional usando tu propio archivo de voz

  • 🌐 Admite 1158 idiomas (supported languages list)

  • 💻 Apto para recursos limitados — funciona con 2 GB de RAM / 1 GB de VRAM (mínimo)

  • 🎵 Formatos de salida del audiolibro: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 Etiquetas SML admitidas — control preciso de cortes, pausas, cambio de voz y mucho más (see below)

  • 🧩 Modelo personalizado opcional usando tu propio modelo entrenado (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • 🎛️ Modelos preajustados y ajustados entrenados por el equipo de E2A

    <i>(Contáctanos si necesitas modelos ajustados adicionales, o si quieres compartir los tuyos en la lista oficial de preajustes)</i>

Requisitos de hardware

  • 2 GB de RAM mín., 8 GB recomendados.
  • 1 GB de VRAM mín., 4 GB recomendados.
  • Virtualización habilitada si se ejecuta en Windows (solo Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (CPU Apple Silicon)

*<i> Los motores TTS modernos son muy lentos en CPU, así que usa TTS de menor calidad como YourTTS, Tacotron2, etc.</i>

Idiomas admitidos

Arabic (ar)Chinese (zh)English (en)Spanish (es)
French (fr)German (de)Italian (it)Portuguese (pt)
Polish (pl)Turkish (tr)Russian (ru)Dutch (nl)
Czech (cs)Japanese (ja)Hindi (hi)Bengali (bn)
Hungarian (hu)Korean (ko)Vietnamese (vi)Swedish (sv)
Persian (fa)Yoruba (yo)Swahili (sw)Indonesian (id)
Slovak (sk)Croatian (hr)Tamil (ta)Danish (da)

Formatos de libro electrónico admitidos

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Mejores resultados: .epub o .mobi para la detección automática de capítulos

Formatos de salida y de proceso

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • El formato de proceso se puede cambiar en lib/conf.py

Etiquetas SML disponibles

  • [break] — silencio (rango aleatorio 0.3–0.6 sec.)
  • [pause] — silencio (rango aleatorio 1.0–1.6 sec.)
  • [pause:N] — pausa fija (N sec.)
  • [voice:/path/to/voice/file]...[/voice] — cambiar de voz respecto a la voz por defecto o seleccionada desde la GUI/CLI

Consulta nuestro otro repositorio dedicado a añadir SML automáticamente en tu libro electrónico -> E2A-SML

[!IMPORTANT] **Antes de publicar un problema de instalación o un error, busca cuidadosamente en la pestaña de problemas abiertos y cerrados

para asegurarte de que tu problema no exista ya.**

[!NOTE] **El formato EPUB carece de cualquier estructura estándar que defina qué es un capítulo, un párrafo, un prefacio, etc.

Por tanto, primero deberías eliminar manualmente cualquier texto que no quieras convertir en audio.**

Instrucciones

  1. Clonar el repositorio

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. Instalar / Ejecutar ebook2audiobook:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>Nota para usuarios de macOS: se instala homebrew para instalar los programas que falten.</i>

    • Lanzador de Mac
      Haz doble clic en Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      o Haz doble clic en ebook2audiobook.cmd

      <i>Nota para usuarios de Windows: se instala scoop para instalar los programas que falten sin privilegios de administrador.</i>

  3. Abrir la aplicación web: Haz clic en la URL proporcionada en el terminal para acceder a la aplicación web y convertir libros electrónicos. http://localhost:7860/

  4. Para un enlace público: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **Si el script se detiene y se vuelve a ejecutar, debes actualizar tu interfaz gráfica de Gradio

para que la página web vuelva a conectarse al nuevo socket de conexión.**

Uso básico

  • Linux/MacOS:

    bash
    ./ebook2audiobook.command --headless --ebook <path_to_ebook_file> --voice <path_to_voice_file> --language <language_code>
    
  • Windows

    bash
    ebook2audiobook.cmd --headless --ebook <path_to_ebook_file> --voice <path_to_voice_file> --language <language_code>
    
  • [--ebook]: Ruta a tu archivo de libro electrónico

  • [--voice]: Ruta del archivo de clonación de voz (opcional)

  • [--language]: Código de idioma en ISO-639-3 (p. ej.: ita para italiano, eng para inglés, deu para alemán...).

    El idioma por defecto es eng y --language es opcional para el idioma por defecto definido en ./lib/lang.py.

    También se admiten los códigos ISO-639-1 de 2 letras.

Ejemplo de subida de un modelo personalizado en zip

(debe ser un archivo .zip que contenga los archivos de modelo obligatorios. Ejemplo para XTTSv2: config.json, model.pth, vocab.json y ref.wav)

  • Linux/MacOS

    bash
    ./ebook2audiobook.command --headless --ebook <ebook_file_path> --language <language> --custom_model <custom_model_path>
    
  • Windows

    bash
    ebook2audiobook.cmd --headless --ebook <ebook_file_path> --language <language> --custom_model <custom_model_path>
    

    <i>Nota: el ref.wav de tu modelo personalizado siempre es la voz seleccionada para la conversión</i>

  • <custom_model_path>: Ruta al archivo model_name.zip, que debe contener (según el motor TTS) todos los archivos obligatorios

    (consulta ./lib/models.py).
    

Para una guía detallada con la lista de todos los parámetros a usar

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • O para todos los sistemas operativos python app.py --help

<a id="help-command-output"></a>

bash
usage: app.py [-h] [--session SESSION] [--share] [--headless] [--ebook EBOOK] [--ebooks_dir EBOOKS_DIR]
              [--language LANGUAGE] [--voice VOICE] [--voice_map VOICE_MAP] [--device {CPU,CUDA,MPS,ROCM,XPU,JETSON}]
              [--tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts}]
              [--custom_model CUSTOM_MODEL] [--fine_tuned FINE_TUNED] [--output_format OUTPUT_FORMAT]
              [--output_channel OUTPUT_CHANNEL] [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY]
              [--num_beams NUM_BEAMS] [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]
              [--speed SPEED] [--enable_text_splitting] [--text_temp TEXT_TEMP] [--waveform_temp WAVEFORM_TEMP]
              [--output_dir OUTPUT_DIR] [--version]

Convert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the Gradio interface or run the script in headless mode for direct conversion.

options:
  -h, --help            show this help message and exit
  --session SESSION     Session to resume the conversion in case of interruption, crash,
                            or reuse of custom models and custom cloning voices.

**** The following option is for gradio/gui mode only:
  --share               (Optional) Enable a public shareable Gradio link.

**** The following options are for --headless mode only:
  --headless            Run the script in headless mode
  --ebook EBOOK         Path to the ebook file for conversion. Cannot be used when --ebooks_dir is present.
  --ebooks_dir EBOOKS_DIR
                        Relative or absolute path of the directory containing the files to convert.
                            Cannot be used when --ebook is present.
  --text TEXT           Raw text for conversion. Cannot be used when --ebook or --ebooks_dir is present.
  --language LANGUAGE   Language of the e-book. Default language is set
                            in ./lib/lang.py sed as default if not present. All compatible language codes are in ./lib/lang.py

optional parameters:
  --translate ISO3      (Optional) Translate ebook to a target language (ISO 639-3 code, e.g. eng, fra, deu) before TTS synthesis.
                            Uses argostranslate. The target language becomes the effective TTS language for the run.
                            A copy of the source ebook is made with the _<iso3> suffix so translated and non-translated
                            outputs stay isolated (independent process folder, audio chunks, and final file).
  --voice VOICE         (Optional) Path to the voice cloning file for TTS engine.
                            Uses the default voice if not present.
  --voice_map VOICE_MAP
                        (Optional, --ebooks_dir only) Path to a JSON file mapping ebook path -> voice path.
                            Each entry overrides --voice for that specific ebook. Missing/null entries fall back to --voice.
                            Keys may be absolute paths or basenames. Example:
                            {"book1.epub": "/voices/eng/adult/female/alice.wav", "/abs/path/book2.epub": null}
  --device {CPU,CUDA,MPS,ROCM,XPU,JETSON}
                        (Optional) Processor unit type for the conversion.
                            Default is set in ./lib/conf.py if not present. Fall back to CPU if CUDA or MPS is not available.
  --tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts}
                        (Optional) Preferred TTS engine (available are: ['XTTS', 'BARK', 'VITS', 'FAIRSEQ', 'TACOTRON', 'YOURTTS', 'xtts', 'bark', 'vits', 'fairseq', 'tacotron', 'yourtts'].
                            Default depends on the selected language. The tts engine should be compatible with the chosen language
  --custom_model CUSTOM_MODEL
                        (Optional) Path to the custom model zip file cntaining mandatory model files.
                            Please refer to ./lib/models.py
  --fine_tuned FINE_TUNED
                        (Optional) Fine tuned model path. Default is builtin model.
  --output_format OUTPUT_FORMAT
                        (Optional) Output audio format. Default is m4b set in ./lib/conf.py
  --output_channel OUTPUT_CHANNEL
                        (Optional) Output audio channel. Default is mono set in ./lib/conf.py
  --temperature TEMPERATURE
                        (xtts only, optional) Temperature for the model.
                            Default to config.json model. Higher temperatures lead to more creative outputs.
  --length_penalty LENGTH_PENALTY
                        (xtts only, optional) A length penalty applied to the autoregressive decoder.
                            Default to config.json model. Not applied to custom models.
  --num_beams NUM_BEAMS
                        (xtts only, optional) Controls how many alternative sequences the model explores. Must be equal or greater than length penalty.
                            Default to config.json model.
  --repetition_penalty REPETITION_PENALTY
                        (xtts only, optional) A penalty that prevents the autoregressive decoder from repeating itself.
                            Default to config.json model.
  --top_k TOP_K         (xtts only, optional) Top-k sampling.
                            Lower values mean more likely outputs and increased audio generation speed.
                            Default to config.json model.
  --top_p TOP_P         (xtts only, optional) Top-p sampling.
                            Lower values mean more likely outputs and increased audio generation speed. Default to config.json model.
  --speed SPEED         (xtts only, optional) Speed factor for the speech generation.
                            Default to config.json model.
  --enable_text_splitting
                        (xtts only, optional) Enable TTS text splitting. This option is known to not be very efficient.
                            Default to config.json model.
  --text_temp TEXT_TEMP
                        (bark only, optional) Text Temperature for the model.
                            Default to config.json model.
  --waveform_temp WAVEFORM_TEMP
                        (bark only, optional) Waveform Temperature for the model.
                            Default to config.json model.
  --output_dir OUTPUT_DIR
                        (Optional) Path to the output directory. Default is set in ./lib/conf.py
  --version             Show the version of the script and exit

Example usage:
Windows:
    Gradio/GUI:
    ebook2audiobook.cmd
    Headless mode:
    ebook2audiobook.cmd --headless --ebook '/path/to/file' --language eng
Linux/Mac:
    Gradio/GUI:
    ./ebook2audiobook.command
    Headless mode:
    ./ebook2audiobook.command --headless --ebook '/path/to/file' --language eng

SML tags available:
	[break] — silence (random range **0.3–0.6 sec.**)
	[pause] — silence (random range **1.0–1.6 sec.**)
	[pause:N] — fixed pause (**N sec.**)
	[voice:/path/to/voice/file]...[/voice] — switch voice from default or selected voice from GUI/CLI

NOTA: en modo gradio/gui, para cancelar una conversión en curso, simplemente haz clic en la [X] del componente de subida del libro electrónico. CONSEJO: si necesita algo más de pausa, añade '[pause:3]' para 3 seg., etc.

Docker

  1. Clonar el repositorio:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. Construir el contenedor
bash
    Windows:
        Docker:
            ebook2audiobook.cmd --script_mode build_docker
        Docker Compose:
            ebook2audiobook.cmd --script_mode build_docker --docker_mode compose
        Podman Compose:
            ebook2audiobook.cmd --script_mode build_docker --docker_mode podman
    Linux/Mac
        Docker:
            ./ebook2audiobook.command --script_mode build_docker
        Docker Compose
            ./ebook2audiobook.command --script_mode build_docker --docker_mode compose
        Podman Compose:
            ./ebook2audiobook.command --script_mode build_docker --docker_mode podman
  1. Ejecutar el contenedor:
bash
Docker run image:
    Gradio/GUI:
        CPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cpu
        CUDA:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --gpus all --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cu[118/122/124/126 etc..]
        ROCM:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --device=/dev/kfd --device=/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:rocm[6.0/6.1/6.4 etc..]
        XPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --device=/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:xpu
        JETSON:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --runtime nvidia  --rm -it -p 7860:7860 athomasson2/ebook2audiobook:jetson[51/60/61 etc...]
    Headless mode:
        CPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --rm -it -p 7860:7860 ebook2audiobook:cpu --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        CUDA:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --gpus all --rm -it -p 7860:7860 ebook2audiobook:cu[118/122/124/126 etc..] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        ROCM:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --device=/dev/kfd --device=/dev/dri --rm -it -p 7860:7860 ebook2audiobook:rocm[6.0/6.1/6.4 etc.] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        XPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --device=/dev/dri --rm -it -p 7860:7860 ebook2audiobook:xpu --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        JETSON:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --runtime nvidia --rm -it -p 7860:7860 ebook2audiobook:jetson[51/60/61 etc.] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
Docker Compose (i.e. cuda 12.8:
        Run Gradio GUI:
               DEVICE_TAG=cu128 docker compose --profile gpu up --no-log-prefix
        Run Headless mode:
               DEVICE_TAG=cu128 docker compose --profile gpu run --rm ebook2audiobook --headless --ebook "/app/ebooks/myfile.pdf" --voice /app/voices/eng/adult/female/some_voice.wav etc..
Podman Compose (i.e. cuda 12.8:
        Run Gradio GUI:
               DEVICE_TAG=cu128 podman-compose -f podman-compose.yml --profile gpu up
        Run Headless mode:
               DEVICE_TAG=cu128 podman-compose -f podman-compose.yml --profile gpu run --rm ebook2audiobook-gpu --headless --ebook "/app/ebooks/myfile.pdf" --voice /app/voices/eng/adult/female/some_voice.wav etc..
  • NOTA: MPS no está expuesto en Docker, por lo que debe usarse la CPU

Problemas habituales con Docker

Modelos TTS ajustados (fine-tuned)

Ajusta tu propio modelo XTTSv2

Eliminar ruido de los datos de entrenamiento

Colección de modelos TTS ajustados

Para un modelo personalizado XTTSv2 es obligatorio un clip de audio de referencia de la voz:

Tu propia personalización de Ebook2Audiobook

Eres libre de modificar libs/conf.py para añadir o eliminar los ajustes que desees. Si piensas hacerlo, simplemente haz una copia del conf.py original para que en cada actualización de ebook2audiobook puedas respaldar tu conf.py modificado y volver a poner el original. Debes planificar el mismo proceso para models.py. Si deseas convertir tu propio modelo personalizado en un modelo ajustado oficial de ebook2audiobook, contáctanos y lo añadiremos a la lista de preajustes.

Volver a versiones anteriores

Las versiones se pueden encontrar -> aquí

bash
git checkout tags/VERSION_NUM # Locally/Compose -> Example: git checkout tags/v25.7.7

Problemas habituales:

  • ¿Mi GPU NVIDIA/ROCm/XPU/MPS no se detecta?? -> GPU ISSUES Wiki Page
  • La CPU es lenta (mejor en una CPU SMP de servidor) mientras que la GPU puede lograr una conversión casi en tiempo real. Discussion about this (Sin embargo, no tiene clonación de voz zero-shot, y las voces son de calidad Siri, pero es mucho más rápido en CPU).
  • «Tengo problemas de dependencias» - Simplemente usa Docker, es totalmente autónomo y tiene un modo headless, añade el parámetro --help al final del comando docker run para más información.
  • «¡Tengo un problema de audio truncado!» - POR FAVOR, ABRE UN ISSUE SOBRE ESTO, no hablamos todos los idiomas y necesitamos el consejo de los usuarios para ajustar la lógica de división de frases.😊

***** HOJA DE RUTA *****

  • Todas las características abiertas a contribuciones públicas ⭐
  • Cualquier ayuda de personas que hablen alguno de los idiomas admitidos para ayudarnos a mejorar los modelos ⭐
  • Previsualizar bloques/capítulos antes de iniciar la conversión
  • Edición por frase convertida para un cambio quirúrgico del texto
  • Integración de etiquetas SML para voz, pausa, corte y más cambios
  • Información de los parámetros -h -help en distintos idiomas
  • Escaneo OCR para PDF / JPG / BMP / PNG / TIFF
  • Carpeta de notebooks Talked about here
  • Hacer que la división de texto en chino no parta las palabras y mejorar la sincronización de las pausas Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • Notebook de Kaggle
  • Notebook de Google Colab
  • Crear una app para iOS
  • Crear una app para Android
  • Integración con Audiobookshelf

Opciones adicionales

  • Opción de traducción del libro electrónico
  • Opciones de formato de salida
  • Carpeta de libros electrónicos por lotes
  • Conversión con multiprocesamiento
  • Conversión por lotes de una carpeta de libros electrónicos
  • Detección del dispositivo GPU
  • Eliminar ruido de cualquier audio de referencia para clonación de voz subida,
  • Subida de modelo personalizado (solo XTTSv2 por ahora. más bajo petición)
  • Añadir un modelo de idioma portugués europeo para xttsv2, fairseq, vits, piper como mínimo (ayuda bienvenida)
  • Añadir un modelo de idioma sindhi para xttsv2, fairseq, vits, piper como mínimo (ayuda bienvenida)

Motores TTS

Traducción del Readme

  • Arabic (ara)
  • Chinese (zho)
  • English (eng)
  • Spanish (spa)
  • French (fra)
  • German (deu)
  • Italian (ita)
  • Portuguese (por)
  • Polish (pol)
  • Turkish (tur)
  • Russian (rus)
  • Dutch (nld)
  • Czech (ces)
  • Japanese (jpn)
  • Hindi (hin)
  • Bengali (ben)
  • Hungarian (hun)
  • Korean (kor)
  • Vietnamese (vie)
  • Swedish (swe)
  • Persian (fas)
  • Yoruba (yor)
  • Swahili (swa)
  • Indonesian (ind)
  • Slovak (slk)
  • Croatian (hrv)

🐍 Compatibilidad de sistemas operativos

  • 🍎 Mac Intel x86
  • 🪟 Windows x86
  • 🐧 Linux x86
  • 🖥️🍏 Apple Silicon Mac
  • 🪟💪 ARM Windows
  • 🐧💪 ARM Linux

Extra exagerado para entrenar modelos y demás (todos los modelos Coqui-tts admitidos y piper-tts en un solo comando fácil)

  • Para información sobre esto @DrewThomasson, actualmente está trabajando en su desarrollo, repositorio en desarrollo aquí
  • Crear una GUI de entrenamiento fácil de usar para todos los modelos coqui-tts en las recetas de entrenamiento con formato ljspeech aquí de coqui tts

Información de normalización del código Python para colaboradores

  • sin línea en blanco entre el código, salvo entre funciones y clases.
  • comilla simple usada para todas las claves salvo para dict() y json. dict['key'] siempre se llama con comilla simple
  • indentación de 4 espacios, nada de tabulaciones
  • tipado estricto para todas las funciones y la declaración de sus argumentos y valores de retorno
  • sin espacio entre el argumento y su tipado, sin espacio entre la función, el «->» y el valor de retorno

Ejemplo:

python
import json
from typing import Optional

def get_user(user_id:int, users:list[dict])->Optional[dict]:
    for user in users:
        if user['id'] == user_id:
            return user
    return None

def summarize(user:dict)->str:
    return f"User {user['name']} is {'active' if user['is_active'] else 'inactive'}."

def to_json(user:dict)->str:
    return json.dumps({"id": user['id'], "name": user['name'], "email": user['email']})

users:list = [
    dict(id=1, name="alice", email="[email protected]", role="admin", is_active=True),
    dict(id=2, name="bob", email="[email protected]", role="editor", is_active=False),
    dict(id=3, name="carol", email="[email protected]", role="viewer", is_active=True),
]
config = {
    "max_users": 100,
    "default_role": "viewer",
    "allow_signup": True,
}
roles = ['admin', 'editor', 'viewer']
found = get_user(1, users)
if found:
    print(summarize(found))
    print(found['email'])
    print(to_json(found))
if config['default_role'] in roles:
    print(config['default_role'])

Se busca donación de hardware para pruebas beta

Aceptamos cualquier tipo de hardware para probar nuestro desarrollo, como:

  • Nvidia supporting cuda >= 11.8
  • XPU intel cards
  • ROCm AMD cards supporting ROCm >=5.7

¡@DrewThomasson si quieres ayudar en lo que sea! 😃

<!-- ## ¿Necesitas alquilar una GPU para potenciar nuestro servicio? - Hay una encuesta abierta aquí https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

Agradecimientos especiales