Introdução geral
O RealtimeVoiceChat é um projeto de código aberto que se concentra em conversas naturais e em tempo real com inteligência artificial por meio de voz. Os usuários usam o microfone para inserir a voz, o sistema capta o áudio por meio do navegador, converte-o rapidamente em texto, usa um modelo de linguagem grande (LLM) para gerar uma resposta e, em seguida, converte o texto em saída de voz, e todo o processo é quase em tempo real. O projeto adota uma arquitetura cliente-servidor com ênfase em baixa latência e oferece suporte a streaming de WebSocket e gerenciamento de diálogo dinâmico. Ele fornece a implantação do Docker, é recomendado para execução no sistema Linux e no ambiente de GPU NVIDIA e integra RealtimeSTT, RealtimeTTS e Ollama e outras tecnologias que são adequadas para que os desenvolvedores criem aplicativos de interação por voz.
Lista de funções
- interação de voz em tempo realO sistema transcreve e gera uma resposta de voz em tempo real.
- Processamento de baixa latênciaOtimize a latência de fala para texto e de texto para fala para 0,5 a 1 segundo com o streaming de áudio usando o WebSocket.
- Conversão de fala em texto (STT)Conversão rápida de fala em texto usando o RealtimeSTT (baseado no Whisper), com suporte para transcrição dinâmica.
- Conversão de texto em fala (TTS)Geração de fala natural por meio de RealtimeTTS (compatível com Coqui, Kokoro e Orpheus) com uma variedade de estilos de voz.
- Gerenciamento inteligente de diálogosIntegração de modelos de linguagem da Ollama ou da OpenAI para dar suporte à geração de diálogos flexíveis e ao tratamento de interrupções.
- Detecção dinâmica de voz: através de
turndetect.py
Permite a detecção inteligente de silêncio e se adapta ao ritmo do diálogo. - interface da webInterface de navegador limpa: fornece uma interface de navegador limpa, usa o Vanilla JS e a API de áudio da Web e oferece suporte a feedback em tempo real.
- Implementação do DockerInstalação simplificada com o Docker Compose, suporte para aceleração de GPU e gerenciamento de modelos.
- Personalização do modeloSuporte para alternar entre os modelos STT, TTS e LLM para ajustar os parâmetros de fala e diálogo.
- código aberto e extensívelO código está disponível publicamente e os desenvolvedores têm liberdade para modificar ou ampliar a funcionalidade.
Usando a Ajuda
Processo de instalação
O RealtimeVoiceChat é compatível com a implantação do Docker (recomendada) e com a instalação manual; Docker para sistemas Linux, especialmente com GPUs NVIDIA, e instalação manual para Windows ou cenários em que é necessário mais controle. Veja abaixo as etapas detalhadas:
Implantação do Docker (recomendado)
Requer o Docker Engine, o Docker Compose v2+ e o NVIDIA Container Toolkit (para usuários de GPU). Os sistemas Linux são recomendados para melhor suporte à GPU.
- armazém de clones::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat
- Criação de uma imagem do Docker::
docker compose build
Essa etapa faz o download da imagem de base, instala o Python e as dependências de aprendizado de máquina e faz o pré-download dos modelos STT padrão (Whisper
base.en
). Isso leva muito tempo, portanto, certifique-se de que sua rede esteja estável. - Início dos serviços::
docker compose up -d
Inicie o aplicativo e o serviço Ollama com o contêiner em execução em segundo plano. Aguarde cerca de 1 a 2 minutos para que a inicialização seja concluída.
- Modelo Pull Ollama::
docker compose exec ollama ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
Esse comando extrai o modelo de idioma padrão. Os usuários podem encontrar o modelo de idioma padrão na seção
code/server.py
modificaçãoLLM_START_MODEL
para usar outros modelos. - Validação da usabilidade do modelo::
docker compose exec ollama ollama list
Verifique se o modelo está carregado corretamente.
- Parar ou reiniciar o serviço::
docker compose down # 停止服务 docker compose up -d # 重启服务
- Ver registro::
docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志
Instalação manual (Windows/Linux/macOS)
A instalação manual requer Python 3.9+, CUDA 12.1 (usuários de GPU) e FFmpeg. Os usuários do Windows podem usar o install.bat
Os scripts simplificam o processo.
- Instalação de dependências básicas::
- Certifique-se de que o Python 3.9+ esteja instalado.
- Os usuários de GPU instalam o NVIDIA CUDA Toolkit 12.1 e o cuDNN.
- Instale o FFmpeg:
# Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # Windows (使用 Chocolatey) choco install ffmpeg
- Clone o repositório e crie um ambiente virtual::
git clone https://github.com/KoljaB/RealtimeVoiceChat.git cd RealtimeVoiceChat python -m venv venv # Linux/macOS source venv/bin/activate # Windows .\venv\Scripts\activate
- Instalação do PyTorch (hardware correspondente)::
- GPU (CUDA 12.1):
pip install torch==2.5.1+cu121 torchaudio==2.5.1+cu121 torchvision --index-url https://download.pytorch.org/whl/cu121
- CPU (desempenho mais lento):
pip install torch torchaudio torchvision
- GPU (CUDA 12.1):
- Instalação de dependências adicionais::
cd code pip install -r requirements.txt
Observação: A instalação do DeepSpeed pode ser complicada. Os usuários do Windows podem instalar o DeepSpeed por meio do
install.bat
Processamento automático. - Instalar o Ollama (usuários que não são do Docker)::
- Consulte a documentação oficial da Ollama para obter informações sobre a instalação.
- Puxe o modelo:
ollama pull hf.co/bartowski/huihui-ai_Mistral-Small-24B-Instruct-2501-abliterated-GGUF:Q4_K_M
- Executar o aplicativo::
python server.py
advertência
- Requisitos de hardwareGPUs NVIDIA (pelo menos 8 GB de RAM) são recomendadas para garantir baixa latência; a operação da CPU pode causar uma degradação significativa do desempenho.
- Configuração do DockerModificação
code/*.py
talvezdocker-compose.yml
Antes de fazer isso, você precisa executar novamente odocker compose build
. - Conformidade com a licençaO mecanismo TTS (por exemplo, Coqui XTTSv2) e o modelo LLM têm licenças separadas e estão sujeitos a seus termos.
fluxo de trabalho
- Acesso à interface da Web::
- Abra seu navegador e acesse
http://localhost:8000
(ou IP do servidor remoto). - Conceda privilégios de microfone e clique em "Start" (Iniciar) para iniciar a conversa.
- Abra seu navegador e acesse
- interação por voz::
- Fale no microfone e o sistema capturará o áudio por meio da API de áudio da Web.
- O áudio é transferido para o backend via WebSocket, o RealtimeSTT é convertido em texto, o Ollama/OpenAI gera uma resposta e o RealtimeTTS é convertido em fala e reproduzido pelo navegador.
- Os atrasos no diálogo são normalmente de 0,5 a 1 segundo, com suporte para interrupção e continuação a qualquer momento.
- Feedback em tempo real::
- A interface exibe texto parcialmente transcrito e respostas de IA, facilitando o acompanhamento do diálogo pelos usuários.
- Você pode clicar em "Stop" (Parar) para encerrar o diálogo e em "Reset" (Redefinir) para limpar o histórico.
- Ajustes de configuração::
- Motor TTS: em
code/server.py
configurarSTART_ENGINE
(por exemplocoqui
ekokoro
eorpheus
), ajustando o estilo da voz. - Modelo LLMModificação
LLM_START_PROVIDER
responder cantandoLLM_START_MODEL
A seguir estão alguns dos recursos mais populares do Ollama - Parâmetros STT: em
code/transcribe.py
ajuste do estágio central Sussurro Limites de modelagem, linguagem ou silêncio. - Detecção de silêncio: em
code/turndetect.py
modificaçãosilence_limit_seconds
(padrão 0,2 segundos) para otimizar o ritmo do diálogo.
- Motor TTS: em
- Depuração e otimização::
- Exibir registro:
docker compose logs -f
(Docker) ou simplesmente dê uma olhada noserver.py
Saída. - Problemas de desempenho: garantir a correspondência da versão CUDA, reduzir
realtime_batch_size
Ou use um modelo leve. - Configuração de rede: Se for necessário usar HTTPS, defina a opção
USE_SSL = True
e forneça o caminho do certificado (consulte a configuração oficial do SSL).
- Exibir registro:
Operação da função em destaque
- Processamento de streaming de baixa latênciaChunking de áudio via WebSocket, combinado com RealtimeSTT e RealtimeTTS, com latência tão baixa quanto 0,5 segundo. Os usuários podem ter conversas tranquilas sem esperar.
- Gerenciamento dinâmico de diálogo::
turndetect.py
Detecta de forma inteligente o fim da fala e oferece suporte a interrupções naturais. Por exemplo, o usuário pode interromper a qualquer momento e o sistema fará uma pausa para gerar e processar novas entradas. - Interação com a interface da WebInterface do navegador: A interface do navegador usa o Vanilla JS e a API de áudio da Web para fornecer transcrição em tempo real e exibição de respostas. Os usuários podem controlar o diálogo com os botões "Start/Stop/Reset".
- Flexibilidade de modelagemSuporte para troca de mecanismos TTS (Coqui/Kokoro/Orpheus) e backends LLM (Ollama/OpenAI). Por exemplo, a troca de TTS:
START_ENGINE = "kokoro" # 在 code/server.py 中修改
- Gerenciamento do DockerO serviço é gerenciado pelo Docker Compose, e só é necessário atualizar o modelo:
docker compose exec ollama ollama pull <new_model>
cenário do aplicativo
- Pesquisa de interação de voz com IA
Os desenvolvedores podem testar a integração do RealtimeSTT, RealtimeTTS e LLM para explorar soluções otimizadas para interação de voz de baixa latência. O código-fonte aberto suporta parâmetros personalizados e é adequado para pesquisas acadêmicas. - Protótipo de atendimento inteligente ao cliente
As empresas podem desenvolver sistemas de atendimento ao cliente por voz com base no projeto. Os usuários fazem perguntas por voz e o sistema responde às perguntas comuns em tempo real, como suporte técnico ou orientação sobre produtos. - Ferramentas de aprendizado de idiomas
As instituições educacionais podem usar a funcionalidade TTS multilíngue para desenvolver ferramentas de prática de diálogo por voz. Os alunos dialogam com a IA para praticar a pronúncia e a conversação, e o sistema fornece feedback em tempo real. - Assistentes pessoais de voz
Os entusiastas da tecnologia podem implantar projetos para experimentar a interação de voz natural com IA, simulando um assistente inteligente, para entretenimento pessoal ou pequenos projetos.
QA
- Qual suporte de hardware é necessário?
Sistema Linux recomendado com GPU NVIDIA (pelo menos 8 GB de memória de vídeo) e CUDA 12.1. A CPU funciona de forma viável, mas com alta latência. Requisitos mínimos: Python 3.9+, 8 GB de RAM. - Como você resolve os problemas de implantação do Docker?
Certifique-se de que o Docker, o Docker Compose e o NVIDIA Container Toolkit estejam instalados corretamente. Verificardocker-compose.yml
da configuração da GPU para visualizar os registros:docker compose logs -f
. - Como faço para alternar entre voz ou modelo?
modificaçõescode/server.py
acertou em cheioSTART_ENGINE
(TTS) ouLLM_START_MODEL
(LLM), o usuário do Docker precisa extrair novamente o modelo:docker compose exec ollama ollama pull <model>
. - Quais são os idiomas suportados?
O RealtimeTTS oferece suporte a vários idiomas (por exemplo, inglês, chinês, japonês), que precisam ser definidos na seçãocode/audio_module.py
Especifique o modelo de idioma e fala na seção