Kyutai Labsdelayed-streams-modeling
Project é uma estrutura de conversão de fala para texto de código aberto, cujo núcleo é baseado na tecnologia DSM (delayed stream modelling). Ele oferece suporte a funções de fala para texto (STT) e texto para fala (TTS) em tempo real, adequadas para a criação de aplicativos eficientes de interação por voz. O projeto fornece várias implementações em PyTorch, Rust e MLX para atender às necessidades de ambientes de pesquisa, desenvolvimento e produção. O modelo suporta inglês e francês com latência de até 0,5 segundo, adequado para diálogo em tempo real, assistente de voz e cenários de tradução. O código do projeto está hospedado no GitHub, com documentação clara e fácil de começar.
Lista de funções
- Fala para texto em tempo real (STT)Suporte para inglês e francês com latência tão baixa quanto 0,5 segundo com a detecção semântica de atividade de voz (VAD).
- Texto para fala (TTS) em tempo realGera fala natural com um atraso de cerca de 220 ms e oferece suporte à geração de texto longo.
- clonagem de falaClonagem de voz: Apenas 10 segundos de áudio são necessários para clonar uma voz (recurso não totalmente de código aberto).
- Suporte a vários idiomasModelos em inglês e francês estão disponíveis, com suporte parcial para recursos experimentais em outros idiomas.
- Processamento eficiente de lotesO servidor Rust suporta alta simultaneidade, com até 64 fluxos de áudio em tempo real na GPU L40S.
- Implementação entre plataformasSuporte para PyTorch (pesquisa), Rust (produção), MLX (dispositivos Apple).
- saída de registro de data e horaO modelo STT retorna carimbos de data e hora no nível da palavra para facilitar a geração de legendas ou o controle interativo.
Usando a Ajuda
Processo de instalação
delayed-streams-modeling
O projeto oferece suporte a uma variedade de métodos de implantação, dependendo do cenário de uso. A seguir, um guia detalhado de instalação e uso:
1. PyTorch (pesquisa e experimentação)
Adequado para pesquisadores e desenvolvedores testarem modelos localmente.
- Preparação ambiental::
- Certifique-se de que o Python 3.8+ e o PyTorch (versão GPU recomendada) estejam instalados.
- Armazém de Clonagem:
git clone https://github.com/kyutai-labs/delayed-streams-modeling.git cd delayed-streams-modeling
- Instale a dependência:
pip install -r requirements.txt
- Execução do modelo STT::
- Faça o download de modelos pré-treinados, como
kyutai/stt-1b-en_fr
(Hugging Face Warehouse) - Execute o exemplo de raciocínio:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.wav --temp 0
- O resultado produzirá o texto transcrito e um registro de data e hora.
- Faça o download de modelos pré-treinados, como
- Execução do modelo TTS::
- Use um comando semelhante para invocar o modelo TTS e inserir um arquivo de texto para gerar áudio.
2. Rust (ambiente de produção)
Adequado para ambientes de produção altamente simultâneos com desempenho superior.
- Preparação ambiental::
- Instale o Rust (via
rustup
). - clone (palavra emprestada)
moshi
Armazém:git clone https://github.com/kyutai-labs/moshi.git cd moshi
- montagem
moshi-server
::cargo install moshi-server
- Instale o Rust (via
- Configuração do servidor::
- Edite o arquivo de configuração (localizado no diretório
moshi/config
), defina o tamanho do lote (64 é recomendado para GPUs L40S). - Inicie o servidor:
cargo run --release -- --config config.toml
- O servidor fornece acesso de streaming via WebSocket e oferece suporte à simultaneidade de vários usuários.
- Edite o arquivo de configuração (localizado no diretório
- Uso::
- Envie fluxos de áudio via cliente WebSocket, receba texto transcrito ou gere fala.
3. MLX (dispositivos Apple)
Adequado para execução no iPhone ou Mac, otimizado para aceleração de hardware.
- Preparação ambiental::
- Instale a estrutura MLX (a estrutura de aprendizado de máquina oficial da Apple).
- Clone o repositório e instale-o
moshi-mlx
::pip install moshi-mlx
- raciocínio de execução::
- Transcrição de microfone em tempo real:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-1b-en_fr-mlx --mic
- Transcrição de documentos:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.mp3 --temp 0
- O modelo 1B funciona sem problemas no iPhone 16 Pro.
- Transcrição de microfone em tempo real:
Função Fluxo de operação
Fala para texto em tempo real (STT)
- Áudio de entradaSuporte para entrada de microfone em tempo real ou upload de arquivos de áudio (por exemplo, WAV, MP3).
- Seleção de modelos::
kyutai/stt-1b-en_fr
Adequado para inglês e francês, baixa latência (0,5 segundos), com VAD semântico.kyutai/stt-2.6b-en
Inglês: específico para o inglês, atraso de 2,5 segundos, maior precisão.
- VAD semânticoPausa: detecta automaticamente se o usuário terminou de falar e ajusta dinamicamente o tempo de pausa para evitar julgamentos falsos.
- resultado de saídaTexto transcrito: retorna texto transcrito e carimbos de data e hora no nível da palavra que podem ser usados para geração de legendas ou controle de interação.
- Otimização da latênciaUsando uma técnica de "flush trick" para acelerar o processamento quando o fim da fala é detectado, a latência é reduzida de 500 ms para 125 ms.
Texto para fala (TTS) em tempo real
- texto de entradaSuporte para entrada de frase por frase ou streaming, adequado para diálogo em tempo real.
- Gerar áudioO modelo gera fala natural em 220 milissegundos e suporta textos longos (mais de 30 segundos).
- clonagem de falaEntrada de 10 segundos de áudio de referência para gerar fala semelhante (é necessária configuração adicional, não é totalmente de código aberto).
- formato de saídaGera áudio no formato WAV, que pode ser reproduzido ou salvo diretamente.
Implementação do ambiente de produção
- Servidor RustSuporte a alta simultaneidade, a GPU H100 pode lidar com até 400 fluxos de áudio em tempo real.
- Otimização de lotesProcessamento em lote eficiente sem código adicional por meio da arquitetura DSM.
- Interface WebSocketO cliente envia áudio ou texto via WebSocket e o servidor retorna o resultado em tempo real.
advertência
- Seleção de modelosSelecione o modelo apropriado de acordo com o hardware e os requisitos (parâmetro 1B para dispositivos leves, parâmetro 2,6B para cenários de alta precisão).
- requisito de redeOs ambientes de produção exigem redes estáveis para suportar o streaming de WebSocket.
- referência de documentação: consulte o repositório do GitHub para obter a configuração detalhada e a documentação da API
README.md
.
cenário do aplicativo
- Desenvolvimento do assistente de voz
- Descrição da cenaOs desenvolvedores usam modelos STT e TTS para criar assistentes de voz inteligentes que suportam o diálogo em tempo real. O VAD semântico garante a detecção precisa da intenção do usuário e é adequado para robôs de atendimento ao cliente ou dispositivos domésticos inteligentes.
- Geração de legendas em tempo real
- Descrição da cenaO modelo STT gera legendas em tempo real para videoconferência ou transmissão ao vivo, com carimbos de data e hora em nível de palavra para alinhamento fácil e preciso, para os setores de educação, conferências e mídia.
- tradução de voz
- Descrição da cenaTradução de voz em tempo real: Combine com o modelo Hibiki para obter uma tradução de voz em tempo real, adequada para cenários de conferências ou viagens entre idiomas, com suporte à saída de streaming dos resultados da tradução.
- Interação por voz para dispositivos móveis
- Descrição da cenaMLX: o MLX permite que os usuários do iPhone operem aplicativos por voz, como anotações de voz ou transcrição em tempo real, adequados para escritórios móveis e assistentes pessoais.
QA
- Como escolher a implementação do modelo correto?
- PyTorch para pesquisa e teste, Rust para alta simultaneidade em ambientes de produção e MLX para dispositivos Apple. Consulte a seleção de hardware e cenário.
- O recurso de clonagem de voz é totalmente de código aberto?
- No momento, a função de clonagem de voz não é totalmente de código aberto, é necessária uma configuração adicional e a recomendação oficial é consultar a documentação do Hugging Face.
- Como otimizar o desempenho do servidor?
- Ajuste o tamanho do lote (por exemplo, 64) no arquivo de configuração do servidor do Rust para garantir que a memória da GPU seja suficiente. A GPU H100 pode suportar maior simultaneidade.
- Quais são os idiomas suportados?
- Suporte principalmente para inglês e francês, suporte experimental para outros idiomas, é necessário consultar a documentação oficial para testar.
- Quais são as vantagens da modelagem de fluxo retardado (DSM)?
- O DSM reduz a latência por meio de fluxos de áudio e texto alinhados ao tempo e oferece suporte ao processamento eficiente de lotes, superando os modelos tradicionais, como o Whisper.