Introdução geral
O Dia é um modelo de conversão de texto em fala (TTS) de código aberto desenvolvido pela Nari Labs que se concentra na geração de áudio de diálogo hiper-realista. Ele transforma scripts de texto em diálogos realistas com vários caracteres em um único processo, oferece suporte ao controle de emoções e entonação e até mesmo gera expressões não verbais, como risadas. No centro do Dia está um modelo de 1,6 bilhão de parâmetros hospedado no Hugging Face, com código e modelos de pré-treinamento disponíveis para os usuários via GitHub. Projetado com ênfase na abertura e na flexibilidade, ele permite que os usuários tenham controle total sobre os scripts de diálogo e a saída de fala, e o Dia fornece uma interface Gradio para que os usuários tenham uma rápida amostra de como será o diálogo gerado. O projeto conta com o apoio do Google TPU Research Cloud e do Hugging Face ZeroGPU Grant, e é inspirado em tecnologias como SoundStorm e Parakeet.
Endereço de demonstração: https://huggingface.co/spaces/nari-labs/Dia-1.6B
Lista de funções
- Geração de diálogos surreaisScript de texto: converte scripts de texto em áudio de diálogo de vários caracteres com suporte para várias tags de alto-falante (por exemplo, [S1], [S2]).
- Emoção e controle de tomAjuste da emoção e da entonação da fala por meio de sinais de áudio ou sementes fixas.
- expressão não-verbalGeração de sons não verbais, como risos e pausas, para aumentar o realismo do diálogo.
- Interface interativa do GradioInterface visual: fornece uma interface visual para simplificar a geração de diálogos e as operações de saída de áudio.
- Modelos e códigos de código abertoOs usuários podem baixar modelos pré-treinados do Hugging Face ou obter o código-fonte no GitHub.
- Suporte para vários dispositivosSuporte à operação de GPU, com suporte à CPU planejado para o futuro.
- Configurações repetíveisGeração de resultados consistentes: garanta a geração consistente de resultados definindo sementes aleatórias.
Usando a Ajuda
Processo de instalação
Para usar o Dia, primeiro você precisa clonar seu repositório do GitHub e configurar seu ambiente. Aqui estão as etapas detalhadas:
- armazém de clones::
Execute o seguinte comando no terminal:git clone https://github.com/nari-labs/dia.git cd dia
- Criação de um ambiente virtual::
Use o Python para criar ambientes virtuais para isolar dependências:python -m venv .venv source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate
- Instalação de dependências::
Dia Usouv
Ferramentas para gerenciar dependências. Instalaçãouv
E corra:pip install uv uv run app.py
Isso instalará automaticamente as bibliotecas necessárias e iniciará a interface do Gradio.
- Requisitos de hardware::
- GPUsGPUs NVIDIA recomendadas com suporte a CUDA.
- CPUOtimização da GPU: a otimização da GPU é atualmente melhor, o suporte à CPU está planejado.
- memória de acesso aleatório (RAM)RAM: Pelo menos 16 GB de RAM, é necessário ter mais memória para carregar o modelo.
- Verificar a instalação::
estar em movimentouv run app.py
Depois disso, o terminal exibirá o URL local da interface do Gradio (geralmente ohttp://127.0.0.1:7860
). Abra esse URL em seu navegador e verifique se a interface é carregada corretamente.
Usando a interface do Gradio
A interface do Gradio é o principal método de interação do Dia e é adequada para testes rápidos e geração de diálogos. As etapas são as seguintes:
- Abra a interface::
ativar (um plano)uv run app.py
A interface contém caixas de entrada de texto, configurações de parâmetros e áreas de saída de áudio. - Inserção de scripts de diálogo::
Digite o script na caixa de texto, usando a opção[S1]
e[S2]
etc. para distinguir os falantes. Por exemplo:[S1] 你好,今天过得怎么样? [S2] 还不错,就是有点忙。(笑)
O script é compatível com marcações fora do idioma, como
(笑)
. - Configuração dos parâmetros de geração::
- Marcador de áudio máximo(
--max-tokens
): controla a duração do áudio gerado, padrão 3072. - Índice CFG(
--cfg-scale
): ajusta a qualidade da geração, padrão 3.0. - temporário(
--temperature
): controla a aleatoriedade, padrão 1,3; quanto maior o valor, mais aleatório será. - Top-p(
--top-p
): probabilidade de amostragem do kernel, padrão 0,95.
Esses parâmetros podem ser ajustados na interface, e os iniciantes podem usar os valores padrão.
- Marcador de áudio máximo(
- Adição de sinais de áudio (opcional)::
Para obter consistência de voz, você pode carregar um áudio de referência. Clique na opção "Audio Cue" na interface e selecione um arquivo WAV. A documentação oficial menciona que as diretrizes para a sugestão de áudio serão lançadas em breve, mas, por enquanto, você pode consultar o exemplo na interface do Gradio. - Gerar áudio::
Clique no botão "Generate" (Gerar) e o modelo processará o script e produzirá o áudio. O tempo de geração depende do desempenho do hardware, geralmente de alguns segundos a dezenas de segundos. O áudio gerado pode ser visualizado na interface ou baixado como um arquivo WAV. - fixação de sementes::
Para garantir que o som gerado seja sempre o mesmo, você pode definir uma semente aleatória. Clique na opção "Seed" (Semente) na interface e insira um número inteiro (por exemplo35
). Se não for definido, o Dia poderá gerar um som diferente a cada vez.
Uso da linha de comando
Além do Gradio, o Dia também suporta operações de linha de comando para desenvolvedores ou geração em lote. Veja abaixo o exemplo:
- Execução de scripts da CLI::
É executado em um ambiente virtual:python cli.py "[S1] 你好! [S2] 嗨,很好。" --output output.wav
- Especificação de modelos::
Por padrão, a opçãonari-labs/Dia-1.6B
Modelos. Se estiver usando um modelo local, você precisará fornecer um arquivo de configuração e pontos de verificação:python cli.py --local-paths --config config.yaml --checkpoint checkpoint.pt "[S1] 测试" --output test.wav
- Parâmetros de ajuste::
Os parâmetros de geração podem ser definidos na linha de comando, por exemplo:python cli.py --text "[S1] 你好" --output out.wav --max-tokens 3072 --cfg-scale 3.0 --temperature 1.3 --top-p 0.95 --seed 35
Operação da função em destaque
- Diálogo com vários personagens::
O ponto forte da Dia é a geração de diálogos com vários atores. Os roteiros são criados com o[S1]
e[S2]
etc. para diferenciar os personagens, o modelo atribuirá automaticamente uma voz diferente a cada personagem. Recomenda-se que o tom ou a emoção do personagem seja explicitado no roteiro, por exemplo:[S1] (兴奋)我们赢了! [S2] (惊讶)真的吗?太棒了!
- expressão não-verbal::
Adicionar ao script(笑)
e(停顿)
e outros marcadores, o Dia gerará os efeitos sonoros correspondentes. Exemplo:[S2] 这太好笑了!(笑)
- consistência da voz::
Para evitar a geração de sons diferentes a cada vez, fixe a semente ou use dicas de áudio. A fixação da semente é feita na interface do Gradio ou na linha de comando por meio do comando--seed
Configurações. Os prompts de áudio devem ser carregados como arquivos WAV de alta qualidade com clipes de voz claros.
advertência
- Os modelos não são ajustados com precisão para sons específicosSons gerados podem ser diferentes a cada vez, e a consistência precisa ser garantida por meio de semeadura ou sinalização de áudio.
- Limitação de hardwareDesempenho da GPU: o desempenho da GPU tem um impacto significativo na velocidade de geração e pode ser mais lento em dispositivos de baixo custo.
- Diretrizes éticasNari Labs fornece diretrizes éticas e legais de uso que os usuários precisam seguir para evitar a geração de conteúdo inadequado.
cenário do aplicativo
- criação de conteúdo
O Dia é ideal para gerar diálogos realistas para podcasts, animações ou vídeos curtos. Os criadores podem inserir roteiros e gerar rapidamente vozes de personagens, eliminando os custos de gravação. Por exemplo, os animadores podem gerar diálogos com diferentes entonações para seus personagens a fim de aprimorar seu trabalho. - Educação e treinamento
O Dia pode gerar diálogos em áudio para o aprendizado de idiomas ou para o treinamento de interpretação de papéis. Por exemplo, os professores de idiomas podem criar diálogos com várias funções que simulam cenários da vida real para ajudar os alunos a praticar a audição e a fala. - desenvolvimento de jogos
Os desenvolvedores de jogos podem usar o Dia para gerar diálogos dinâmicos para NPCs. Os scripts suportam a marcação de emoções e podem gerar falas específicas de personagens para diferentes cenários. - Pesquisa e desenvolvimento
Os pesquisadores de IA podem explorar as tecnologias TTS por meio do desenvolvimento secundário com base no código-fonte aberto do Dia. O modelo suporta carregamento local, o que é adequado para experimentação e otimização.
QA
- Quais formatos de entrada são compatíveis com o Dia?
O Dia aceita scripts de texto com[S1]
e[S2]
Os marcadores distinguem os falantes. Tokens não verbais, como(笑)
O sinal de áudio está disponível no formato WAV como opção. - Como faço para garantir que os sons gerados sejam consistentes?
As sementes fixas podem ser definidas pela configuração (--seed
) ou carregar uma implementação de sugestão de áudio. As sementes podem ser definidas na interface do Gradio ou na linha de comando, e os sinais de áudio precisam ser arquivos WAV de alta qualidade. - O Dia é compatível com a operação da CPU?
No momento, o Dia está otimizado para ser executado em GPUs, com suporte para CPUs planejado para o futuro, e recomenda-se o uso de GPUs NVIDIA para obter o melhor desempenho. - Quanto tempo leva para gerar áudio?
O tempo de geração depende do hardware e do tamanho do script. Em GPUs de alto desempenho, diálogos curtos geralmente levam alguns segundos para serem gerados, e diálogos longos podem levar dezenas de segundos. - O Dia é gratuito?
O Dia é um projeto de código aberto e o código e os modelos são gratuitos. Os usuários são responsáveis pelo custo do hardware necessário para executá-lo.