Skip to content

Instantly share code, notes, and snippets.

@suoko
Created March 31, 2024 21:28
Show Gist options
  • Save suoko/1adb865bb0635bccd2153156c17cda28 to your computer and use it in GitHub Desktop.
Save suoko/1adb865bb0635bccd2153156c17cda28 to your computer and use it in GitHub Desktop.
Clonare la voce con coqui
# Creare il container
sudo docker run -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
# Uscire dal container
exit
# Vedere il nome del container e avviarlo se fermo
sudo docker ps -a
sudo docker start <container id>
# Registra un file wav (voce_registrata.wav) leggendo il seguente testo (o altri testi):
"Era una giornata limpida e luminosa, di quelle che solo l'autunno sa regalare. Il sole tiepido illuminava le foglie colorate degli alberi, che danzavano leggiadre al ritmo del vento. Un leggero fruscio accompagnava il mio passo mentre camminavo lungo il sentiero immerso nel bosco. I miei pensieri vagavano liberi, cullati dalla quiete della natura che mi circondava. In lontananza, il canto degli uccelli si mescolava al suono del ruscello che scorreva placido. Un senso di pace e serenità mi pervadeva, mentre mi godevo la bellezza di quel momento perfetto."
# Copiare il file della voce nel container
sudo docker cp voce_registrata.wav <container id>:/root/voce_registrata.wav
# Entrare nel container
sudo docker exec -it <container id> /bin/bash
# Creare clone.py con il seguente codice:
import torch
from TTS.api import TTS
# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"
# List available 🐸TTS models
print(TTS().list_models())
# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
#wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# Text to speech to a file
tts.tts_to_file(text="Adesso dovreste fare i bravi, e non sono io a dirlo!", speaker_wav="./voce_registrata.wav", language="it", file_path="./output.wav")
# Eseguire il codice con il comando e uscire dal container:
python clone.py
exit
# Copiare il file creato dal container all'host:
sudo docker cp 3f2eaefc5fce:/root/output.wav ./output.wav
# Ascoltare l'audio con la voce clonata
play output.wav
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment