Introdução geral
O Orpheus-TTS é um sistema de conversão de texto em fala (TTS) de código aberto desenvolvido na arquitetura Llama-3b, com o objetivo de gerar áudio que se aproxima da fala humana natural. Ele foi lançado pela equipe da Canopy AI e é compatível com vários idiomas, como inglês, espanhol, francês, alemão, italiano, português e chinês. O sistema gera fala com entonação, emoção e ritmo a partir da entrada de texto e suporta expressões não verbais, como risos e suspiros, tornando-o adequado para conversas em tempo real, produção de audiolivros e desenvolvimento de assistentes inteligentes. O Orpheus-TTS fornece modelos pré-treinados e ajustados, permitindo que os desenvolvedores personalizem a fala ou o idioma de acordo com suas necessidades.
Lista de funções
- Geração de fala quase humana: transformar texto em áudio com entonação, emoção e ritmo naturais supera o desempenho de modelos de código parcialmente fechado.
- Clonagem de fala com amostra zero: imita o timbre da fala alvo sem treinamento adicional.
- Controle emocional e de entonação: por meio de rotulagem (por exemplo
<laugh>
e<sigh>
) Ajuste da expressão vocal para aumentar o realismo. - Saída de streaming de baixa latência: latência de geração de fala em tempo real de cerca de 200 ms, otimizada para 100 ms.
- Suporte a vários idiomas: inglês, espanhol, francês, alemão, italiano, português, chinês e outros idiomas.
- Ajuste fino do modelo: são fornecidos scripts de processamento de dados e conjuntos de dados de exemplo para dar suporte aos desenvolvedores na personalização de estilos de fala ou idiomas.
- Execução local e na nuvem: compatível com o LM Studio, llama.cpp ou vLLM Execute localmente ou na nuvem.
- Marca d'água de áudio: Proteja os direitos autorais com a marca d'água do áudio gerado com a tecnologia Silent Cipher.
Usando a Ajuda
Processo de instalação
O Orpheus-TTS requer um ambiente Python e suporte básico de hardware (recomenda-se GPU). Veja a seguir as etapas detalhadas de instalação:
- Clonagem da base de código
Faça o download do projeto Orpheus-TTS usando o Git:git clone https://github.com/canopyai/Orpheus-TTS.git cd Orpheus-TTS
- Instalação de dependências
Instalação de pacotes principaisorpheus-speech
Ele se baseia no vLLM para raciocínio rápido:pip install orpheus-speech
Observação: a versão de 18 de março de 2025 do vLLM pode ter bugs e é recomendável instalar a versão estável:
pip install vllm==0.7.3
Outras dependências incluem
transformers
edatasets
responder cantandotorch
A instalação pode ser feita mediante solicitação:pip install transformers datasets torch
- Verifique os requisitos de hardware
- Versão do Python: 3.8-3.11 (3.12 não é compatível).
- GPU: o driver NVIDIA CUDA é recomendado, com mais de 12 GB de memória de vídeo para garantir uma operação suave.
- CPU: compatível com
orpheus-cpp
mas com desempenho inferior em testes mais leves. - Rede: a primeira execução requer o download do modelo; recomenda-se uma conexão estável com a Internet.
- Modelos para download
A Orpheus-TTS oferece os seguintes modelos hospedados na Hugging Face:- Ajuste fino do modelo (
canopylabs/orpheus-tts-0.1-finetune-prod
): adequado para tarefas diárias de geração de fala. - Modelos pré-treinados (
canopylabs/orpheus-tts-0.1-pretrained
): baseado em 100.000 horas de treinamento de dados de fala em inglês, adequado para tarefas avançadas, como clonagem de fala. - Modelagem multilíngue (
canopylabs/orpheus-multilingual-research-release
): contém 7 conjuntos de modelos pré-treinados e ajustados para dar suporte a estudos multilíngues.
Método de download:
huggingface-cli download canopylabs/orpheus-tts-0.1-finetune-prod
- Ajuste fino do modelo (
- instalação de teste
Execute o seguinte script Python para verificar se a instalação foi bem-sucedida:from orpheus_tts import OrpheusModel model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod") prompt = "tara: 你好,这是一个测试!" audio = model.generate_speech(prompt) with wave.open("test_output.wav", "wb") as file: file.setnchannels(1) file.setsampwidth(2) file.setframerate(24000) file.writeframes(audio)
Após a execução bem-sucedida, será gerado um arquivo WAV contendo a voz do texto de entrada.
Funções principais
1. geração de fala quase humana
A principal função do Orpheus-TTS é converter texto em áudio que se aproxima da fala humana natural. O sistema suporta uma ampla variedade de caracteres de fala, no modelo de idioma inglês tara
o sentido mais natural da fala, outros personagens incluem leah
ejess
eleo
edan
emia
ezac
responder cantando zoe
. As funções do modelo multilíngue precisam consultar a documentação oficial. Procedimento:
- Preparar prompts de texto no formato
{角色名}: {文本}
Por exemplotara: 你好,今天天气很好!
. - Chame a função de geração:
audio = model.generate_speech(prompt="tara: 你好,今天天气很好!")
- A saída é áudio no formato WAV com uma taxa de amostragem de 24000 Hz em mono.
2) Emoção e controle de tom
Os usuários podem controlar a expressão emocional da voz por meio de tags para aumentar o realismo da voz. As tags compatíveis incluem:
<laugh>
Risos.<sigh>
Suspiro.<cough>
Tosse.<sniffle>
Faringes.<groan>
:gemido.<yawn>
: Bocejo.<gasp>
Surpresa.
Exemplo:
prompt = "tara: 这个消息太震撼了!<gasp> 你听说了吗?"
audio = model.generate_speech(prompt)
O áudio gerado incluirá efeitos surpresa nos locais apropriados. Consulte a documentação do Hugging Face para obter suporte a tags de modelo em vários idiomas.
3. clonagem de fala com amostra zero
O Orpheus-TTS suporta a clonagem de fala com amostra zero, que pode imitar diretamente a fala alvo sem pré-treinamento. Etapas da operação:
- Prepare um arquivo WAV da fala alvo com uma duração recomendada de 10 a 30 segundos e uma taxa de amostragem de 24000 Hz.
- Use o script a seguir:
audio_ref = "path/to/reference.wav" prompt = "tara: 这段话会模仿你的声音!" audio = model.generate_with_voice_clone(prompt, audio_ref)
- O áudio de saída será próximo ao timbre da fala de referência. O modelo pré-treinado tem melhor desempenho na tarefa de clonagem.
4. saída de streaming de baixa latência
O Orpheus-TTS fornece geração de fala em streaming para cenários de diálogo em tempo real, com uma latência de cerca de 200 ms, otimizada para 100 ms. exemplo operacional:
from flask import Flask, Response
from orpheus_tts import OrpheusModel
app = Flask(__name__)
[1]
model = OrpheusModel(model_name="canopylabs/orpheus-tts-0.1-finetune-prod")
@app.route("/stream")
def stream_audio():
def generate():
prompt = "tara: 这是实时语音测试!"
for chunk in model.stream_generate(prompt):
yield chunk
return Response(generate(), mimetype="audio/wav")
Depois de executar o serviço Flask, acesse o arquivo http://localhost:5000/stream
A voz em tempo real pode ser ouvida. Para otimizar a latência, é necessário habilitar o cache KV e o streaming de entrada.
5. ajuste fino do modelo
Os desenvolvedores podem ajustar o modelo para oferecer suporte a novos idiomas ou estilos de fala. As etapas são as seguintes:
- Prepare o conjunto de dados: consulte o conjunto de dados de exemplo do Hugging Face para obter o formato (
canopylabs/zac-sample-dataset
). Recomenda-se incluir de 50 a 300 amostras/caracteres, sendo 300 amostras para obter os melhores resultados. - Pré-processamento de dados: uso de notebooks Colab fornecidos oficialmente (
1wg_CPCA-MzsWtsujwy-1Ovhv-tn8Q1nD
Os dados são processados em cerca de 1 minuto/mil entradas. - Treinamento de configuração: modificações
finetune/config.yaml
defina o caminho e os parâmetros do conjunto de dados. - Treinamento de corrida:
huggingface-cli login wandb login accelerate launch train.py
- O modelo ajustado pode ser usado para tarefas específicas, como a otimização da fala em chinês.
6. marca d'água de áudio
O Orpheus-TTS suporta áudio com marca d'água para proteção de direitos autorais por meio da tecnologia Silent Cipher. Método de operação:
- Consulte o script de implementação oficial (
additional_inference_options/watermark_audio
). - Exemplo:
from orpheus_tts import add_watermark audio = model.generate_speech(prompt) watermarked_audio = add_watermark(audio, watermark_id="user123")
7. sem raciocínio de GPU
Os usuários sem uma GPU podem usar o orpheus-cpp
Execução em uma CPU, passo a passo:
- montagem llama.cpp Meio ambiente.
- Consulte a documentação oficial (
additional_inference_options/no_gpu/README.md
). - Desempenho inferior ao das GPUs para tarefas mais leves.
advertência
- Seleção de modelosModelos ajustados são adequados para tarefas cotidianas e modelos pré-treinados são adequados para tarefas avançadas, como clonagem de fala.
- Limitação de hardwareMenos de 12 GB de memória de vídeo pode resultar em memória insuficiente; recomenda-se verificar a configuração do hardware.
- Suporte a vários idiomasIdiomas que não sejam em inglês precisam consultar a documentação do modelo multilíngue; alguns idiomas podem precisar de ajuste fino.
- ajustar os componentes durante o testeSe o vLLM relatar um erro (por exemplo
vllm._C
), tente uma versão diferente ou verifique a compatibilidade com CUDA.
Funções complementares: extensão comunitária
A natureza de código aberto do Orpheus-TTS atraiu contribuições da comunidade, e a seguinte implementação (não totalmente verificada) é oficialmente recomendada:
- Cliente local do LM StudioExecute o Orpheus-TTS por meio da API do LM Studio (
isaiahbjork/orpheus-tts-local
). - FastAPI compatível com Open AIFornece uma interface de API no estilo Open AI (
Lex-au/Orpheus-FastAPI
). - Gradio WebUIInterface da Web habilitada para WSL e CUDA (
Saganaki22/OrpheusTTS-WebUI
). - Espaço para abraçar o rostoUma experiência on-line criada pelo usuário da comunidade MohamedRashad (
MohamedRashad/Orpheus-TTS
).
cenário do aplicativo
- Robô inteligente de atendimento ao cliente
O Orpheus-TTS gera fala natural para sistemas de atendimento ao cliente, oferecendo suporte ao diálogo em tempo real e à expressão emocional para aprimorar a experiência do usuário.
Por exemplo, as plataformas de comércio eletrônico podem integrar o Orpheus-TTS para adicionar um tom amigável ao responder às perguntas dos clientes. - Produção de audiolivros e podcasts
As editoras podem transformar romances ou artigos em audiolivros, dando suporte à rotulagem de vários personagens e emoções e reduzindo os custos de locução.
Os criadores de podcasts podem gerar linhas de abertura dinâmicas para aumentar o apelo de seus programas. - Ferramentas de aprendizado de idiomas
O aplicativo educacional gera um discurso com som padrão para ajudar os alunos a praticar a audição e a fala.
Por exemplo, os alunos de chinês podem usar o modelo chinês para praticar a pronúncia do mandarim. - Locução de personagens de jogos
Os desenvolvedores de jogos podem gerar diálogos dinâmicos para NPCs, com suporte a expressões emocionais e em vários idiomas para aumentar a imersão.
Por exemplo, os RPGs podem gerar tons exclusivos para diferentes personagens. - Auxílios de acessibilidade
O Orpheus-TTS oferece suporte à leitura em tempo real para usuários com deficiência visual, convertendo texto em fala.
Por exemplo, integrar-se a um leitor de e-book para ler artigos longos em voz alta.
QA
- Quais idiomas são compatíveis com o Orpheus-TTS?
Há suporte para inglês, espanhol, francês, alemão, italiano, português e chinês. O modelo multilíngue abrange mais idiomas, conforme descrito na documentação do Hugging Face. - Como otimizar a latência de voz em tempo real?
Habilite o cache KV e o streaming de entrada para reduzir a latência de 200 ms para 100 ms. Garanta um desempenho suficiente da GPU com pelo menos 12 GB de memória de vídeo. - Que preparação é necessária para a clonagem de voz de amostra zero?
Fornece de 10 a 30 segundos de áudio de referência no formato WAV com uma taxa de amostragem de 24000 Hz para um melhor pré-treinamento do modelo. - A CPU pode executar o Orpheus-TTS?
Sim, useorpheus-cpp
As GPUs não são tão potentes, mas têm desempenho inferior ao das GPUs, o que as torna adequadas para testes ou tarefas leves. - Como faço para adicionar uma marca d'água ao meu áudio?
Usando a tecnologia Silent Cipher, ligue paraadd_watermark
você precisa consultar o script oficial para implementá-la. - Quantos dados são necessários para o ajuste fino?
50 amostras para resultados iniciais, 300 amostras/caractere para melhor qualidade. Os dados devem estar no formato Hugging Face.