Implementação de F5-TTS no SWIFT, usando a estrutura MLX Swift.
Você pode ouvir uma amostra aqui que foi gerada em ~ 11 segundos em um M3 Max MacBook Pro.
Consulte o repositório Python para obter detalhes adicionais sobre a arquitetura do modelo.
Este repositório é baseado na implementação original do Pytorch disponível aqui.
O pacote Swift F5TTS pode ser construído e executado a partir do Xcode ou Swiftpm.
Um modelo pré -treinado está disponível no Huggingface.
import F5TTS
let f5tts = try await F5TTS . fromPretrained ( repoId : " lucasnewman/f5-tts-mlx " )
let generatedAudio = try await f5tts . generate ( text : " The quick brown fox jumped over the lazy dog. " )O resultado é um MLXARRAY com amostras de áudio de 24kHz.
Se você deseja usar sua própria amostra de áudio de referência, verifique se é um arquivo WAV mono e 24kHz de cerca de 5 a 10 segundos:
let generatedAudio = try await f5tts . generate (
text : " The quick brown fox jumped over the lazy dog. " ,
referenceAudioURL : ... ,
referenceAudioText : " This is the caption for the reference audio. "
)Você pode converter um arquivo de áudio no formato correto com FFMPEG como este:
ffmpeg -i /path/to/audio.wav -ac 1 -ar 24000 -sample_fmt s16 -t 10 /path/to/output_audio.wavYushen Chen para a implementação original de Pytorch de F5 TTS e modelo pré -terenciado.
Phil Wang para a implementação do E2 TTS em que este modelo se baseia.
@article { chen-etal-2024-f5tts ,
title = { F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching } ,
author = { Yushen Chen and Zhikang Niu and Ziyang Ma and Keqi Deng and Chunhui Wang and Jian Zhao and Kai Yu and Xie Chen } ,
journal = { arXiv preprint arXiv:2410.06885 } ,
year = { 2024 } ,
} @inproceedings { Eskimez2024E2TE ,
title = { E2 TTS: Embarrassingly Easy Fully Non-Autoregressive Zero-Shot TTS } ,
author = { Sefik Emre Eskimez and Xiaofei Wang and Manthan Thakker and Canrun Li and Chung-Hsien Tsai and Zhen Xiao and Hemin Yang and Zirun Zhu and Min Tang and Xu Tan and Yanqing Liu and Sheng Zhao and Naoyuki Kanda } ,
year = { 2024 } ,
url = { https://api.semanticscholar.org/CorpusID:270738197 }
}O código deste repositório é liberado sob a licença do MIT, conforme encontrado no arquivo de licença.