Skip to content

Ferramentas úteis para aplicações de Text To Speech: normalização de textos, construção automática de dataset e métricas de avaliação.

License

Notifications You must be signed in to change notification settings

gruporaia/TTS-Utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text To Speech Utils

Aplicações de TTS (Text-to-Speech) em português frequentemente exigem ferramentas auxiliares, como métricas de avaliação, normalização de texto e criação de datasets. Este repositório oferece implementações prontas para acelerar o desenvolvimento de projetos de TTS em pt-BR, com os seguintes módulos disponíveis:

  • Construtor automático de datasets a partir de áudios em português: a partir de arquivos de áudio brutos, são extraídas e transcritas frases, gerando um CSV com o texto e o caminho para cada trecho correspondente.
  • Normalização de texto: transforma frases com números, siglas, símbolos e abreviações em versões por extenso, facilitando a leitura por modelos de TTS.
  • Métricas de avaliação: este repositório tem código pronto para cálculo das métricas SECS, UTMOS e CER.

Confira nossa aplicação que utiliza esses componentes para elaborar um pipeline automático de finetuning de modelos TTS, a TTS-AutoTuning.

🛠️ Como usar

Instalando dependências

pip install "git+https://github.com/gruporaia/TTS-Utils.git"

OBS: Caso seja necessário, é possível flexibilizar as versões das dependências alterando o arquivo pyproject.toml, mas não garantimos o funcionamento do pacote.

Funcionamento

Construtor Automático de Dataset

from TTS_Utils import build_dataset

input_path = "pasta_com_audio_bruto"
output_path = "pasta_para_salvar_csv_e_segmentos_de_audio"

build_dataset(input_path, output_path)

Normalização Textual

from TTS_Utils import normalize_text

texto = "Exemplo de texto com números: 10, 20.5, 30kg e 40%"
normalizado = normalize_text(texto)
# Saída: "Exemplo de texto com números dez, vinte vírgula cinco, trinta quilos e quarenta por cento."

Métricas de Avaliação

from TTS_Utils.metrics import UTMOS, SECS, CER


audio_gerado = 'audios/audiogerado.wav'
voz_referencia = 'audios/voz.wav'
prompt = 'o rato roeu a roupa do rei de roma'

# UTMOS (Universal Text-to-Speech MOS)
# Avalia a qualidade perceptual de um áudio gerado por TTS.
utmos_score = UTMOS(audio_gerado)
# Saída: score numérico representando a qualidade subjetiva.

# SECS (Short-Time Energy Correlation Similarity)
# Mede a similaridade energética entre o áudio gerado e o áudio de referência.
secs_score = SECS(voz_referencia, audio_gerado)
# Saída: valor de similaridade entre -1 e 1.

# CER (Character Error Rate)
# Calcula a taxa de erro por caractere entre a transcrição esperada e a reconhecida a partir do áudio gerado.
cer_value = CER(audio_gerado, prompt)
# Saída: valor percentual indicando o quanto os textos diferem.

Próximos passos

  • Melhorias no módulo de normalização textual, garantindo a corretude e precisão da normalização de uma maior variedade de frases e abreviações.
  • Melhorias no módulo de construção automática de datasets, ampliando corretude, desempenho e quantidade de línguas, por exemplo.
  • Adição de novas métricas de avaliação.
  • Adição de outros módulos utilitários, como a normalização textual inversa.

💻 Quem somos

LogoRAIA Este projeto foi desenvolvido pelos membros do RAIA (Rede de Avanço de Inteligência Artificial), uma iniciativa estudantil do Instituto de Ciências Matemáticas e de Computação (ICMC) da USP - São Carlos. Somos estudantes que compartilham o objetivo de criar soluções inovadoras utilizando inteligência artificial para impactar positivamente a sociedade. Para saber mais, acesse nosso site ou nosso Instagram!

Desenvolvedores

About

Ferramentas úteis para aplicações de Text To Speech: normalização de textos, construção automática de dataset e métricas de avaliação.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages