O realtime-transcription-fastrtc é um projeto de código aberto voltado para a conversão de fala em texto em tempo real. Ele usa a tecnologia FastRTC para processar fluxos de áudio de baixa latência, combinada com a tecnologia local Sussurro para obter um reconhecimento de fala eficiente. O projeto é mantido pelo desenvolvedor sofi444 e hospedado no GitHub. O código é totalmente aberto e permite que os usuários o modifiquem livremente. Os usuários podem implantá-lo via navegador ou localmente, e a interface é compatível com os modos Gradio e FastAPI, que são fáceis de operar. Ele é adequado para registros de reuniões, legendas ao vivo e outros cenários para atender às necessidades de indivíduos e desenvolvedores. O projeto enfatiza o suporte leve e em vários idiomas, a operação estável e a facilidade de expansão.

Lista de funções
- Transcrição de voz em tempo real: converta instantaneamente a voz em texto por meio do microfone com baixa latência de até milissegundos.
- Detecção de atividade de voz (VAD): identifica automaticamente o início e o fim da fala para otimizar o processo de transcrição.
- Suporte a vários idiomas: inglês, chinês e outros idiomas, com base no modelo Whisper.
- Opções de interface dupla: interface intuitiva Gradio e interface personalizável FastAPI.
- Execuções de modelos locais: usando os modelos Whisper, a transcrição off-line é suportada sem a necessidade de uma conexão constante com a Internet.
- Ajuste de parâmetros: suporta a configuração de fluxos de áudio, limites de VAD e tamanhos de lote de modelos.
- Implementação flexível: pode ser executado localmente ou implementado por meio de plataformas como o Hugging Face Spaces.
- Feedback de erros: fornece indicação clara de falha de conexão ou erro de configuração para facilitar a depuração.
Usando a Ajuda
Processo de instalação
Para usar o realtime-transcription-fastrtc, você precisa preparar seu ambiente Python e as dependências relacionadas. Abaixo estão as etapas detalhadas para garantir que os usuários possam instalá-lo e executá-lo sem problemas.
- Verificação dos requisitos do sistema
- Versão do Python: >= 3.10.
- montagem
ffmpegusado para processamento de áudio. - Hardware recomendado: GPUs (por exemplo, MPS ou CUDA) para acelerar a inferência do modelo; as CPUs também podem ser executadas, mas são mais lentas.
- armazém de clones
Execute o seguinte comando no terminal para obter o código do projeto:git clone https://github.com/sofi444/realtime-transcription-fastrtc cd realtime-transcription-fastrtc - Configuração de um ambiente virtual
Para evitar conflitos de dependência, crie um ambiente virtual Python. Há duas maneiras oficialmente recomendadas de fazer isso:
Modo 1: Uso de raios ultravioleta (recomendado)
Em primeiro lugar, instaleuv(Ref.https://docs.astral.sh/uv/) e, em seguida, executar:uv venv --python 3.11 source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate uv pip install -r requirements.txtManeira 2: usar o pip
python -m venv .venv source .venv/bin/activate # Windows 用户运行 .venv\Scripts\activate pip install --upgrade pip pip install -r requirements.txt - Instalar o ffmpeg
Instalação de acordo com o sistema operacionalffmpeg::
macOS::brew install ffmpegLinux (Ubuntu/Debian)::
sudo apt update sudo apt install ffmpegWindows (computador)::
- download
ffmpegExecutável (dehttps://ffmpeg.org/download.html). - Adicione-o à variável de ambiente do sistema ou coloque-o no diretório raiz do projeto.
- download
- Configuração de variáveis de ambiente
No diretório raiz do projeto, crie o arquivo.envadicione o seguinte:UI_MODE=fastapi APP_MODE=local SERVER_NAME=localhost PORT=7860 MODEL_ID=openai/whisper-large-v3-turboUI_MODE: Definido comogradioUsando a interface do Gradio, definafastapiUsar uma interface HTML personalizada (padrão).APP_MODEA execução local é definida comolocalA implantação da nuvem está definida comodeployed.MODEL_IDWhisper: Especifica o modelo Whisper, padrãoopenai/whisper-large-v3-turbo.SERVER_NAMEEndereço do servidor, padrãolocalhost.PORTNúmero da porta, padrão7860.
- Projetos em andamento
Execute o programa principal:python main.pyO terminal exibe um URL (por exemplo
http://localhost:7860A porta pode ser diferente no modo Gradio, portanto, preste atenção aos avisos do terminal.
Funções principais
Transcrição de voz em tempo real
- Iniciar a transcriçãoClique no botão "Start Recording" (Iniciar gravação) para autorizar o navegador a acessar o microfone. O sistema detectará automaticamente a voz e exibirá o texto.
- Exibir resultadosTexto transcrito: O texto transcrito é exibido em tempo real na caixa de texto da interface, rolando automaticamente para o conteúdo mais recente.
- Suspensão da transcriçãoClique no botão "Stop" (Parar) para pausar a entrada de voz.
- tomar nota dePara garantir baixa latência, o projeto tem como padrão um tamanho de lote de 1, ou seja, cada clipe de áudio recebido é imediatamente transcrito.
Detecção de atividade de voz (VAD)
- O VAD distingue automaticamente entre voz e silêncio para melhorar a eficiência da transcrição. Parâmetros ajustáveis (consulte a documentação do FastRTC)
https://fastrtc.org):audio_chunk_durationDuração do clipe de áudio: comprimento do clipe de áudio, padrão 0,6 segundos.started_talking_thresholdLimite de início de voz: Limite de início de voz, padrão 0,2 segundos.speech_pad_msPreenchimento silencioso, padrão 400 milissegundos.
- Modificação: Editar
main.pyou passar parâmetros por meio de variáveis de ambiente.
Comutação de interface
- Interface do GradioInterface de usuário: Ideal para testes rápidos, a interface contém um botão de registro e uma área de exibição de texto. Configurações
UI_MODE=gradioExecute-o em seguida para acessar o endereço solicitado pelo terminal. - Interface FastAPISuporte à personalização e é adequado para desenvolvedores. Modificar
index.htmlOs estilos ou recursos podem ser ajustados. ConfiguraçõesUI_MODE=fastapiApós a execução, visitehttp://localhost:8000.
Operação da função em destaque
Modelos locais da Whisper
- Modelo padrão:
openai/whisper-large-v3-turboO sistema é leve, multilíngue e tem excelente desempenho. - Alteração de modelos: configurações
MODEL_IDPor exemploopenai/whisper-small(para dispositivos de perfil baixo). Suporte para outros modelos de ASR Hugging Face (https://huggingface.co/models?pipeline_tag=automatic-speech-recognition). - Configuração do idioma: a tradução padrão é o inglês; quando precisar transcrever outros idiomas, defina-o no código.
languageparâmetros (por exemplolanguage=zh(denota chinês). - Otimização da execução: a primeira execução aquecerá o modelo para reduzir a latência. A aceleração da GPU é recomendada.
Suporte a vários idiomas
- Suporte para inglês, chinês, espanhol e outros idiomas, dependendo do modelo.
- Configuração: Na seção
main.pyconfigurartranscribetarefa e especificar o idioma de destino. - Exemplo: transcrição de discurso em chinês, configuração
language=zhVerifique se a entrada do microfone está livre.
Implementação na nuvem
- Espaços para abraçar o rosto: Configurações
APP_MODE=deployedPara configurar o servidor Turn (consultehttps://fastrtc.org/deployment/). Faça upload do código e execute-o conforme solicitado pela plataforma. - Outras plataformasSe você não estiver conectado à WebRTC, não poderá usar o servidor: Você precisa configurar manualmente o WebRTC e o ambiente do servidor para garantir que as portas estejam abertas.
Tratamento de erros
- erro comum::
- "Failed to connect" (Falha na conexão): verifique a configuração da rede ou do WebRTC.
- "Modelo não encontrado": confirmado
MODEL_IDCorreto e o modelo foi baixado. - "ffmpeg not found": certifique-se de que o
ffmpegInstalado e no caminho do sistema.
- ajustar os componentes durante o testeLogs do terminal: visualize os logs do terminal em tempo de execução para registrar a taxa de amostragem de áudio, o status de carregamento do modelo, etc.
advertência
- softwareGPU recomendada para inferência em tempo real, suporte a MPS
whisper-large-v3-turbo. - navegador (software)Recomendamos o uso do Chrome ou do Firefox para garantir que o WebRTC esteja funcionando corretamente.
- precisão da falaSujeito à qualidade do microfone e ao ambiente, recomendado para uso em ambientes silenciosos.
cenário do aplicativo
- procedimentos
Em reuniões remotas ou no local, transcreva as discussões em tempo real para gerar transcrições. As equipes podem exportar e agrupar diretamente, eliminando a necessidade de anotações manuais. - legendagem ao vivo
Adicione legendas em tempo real às transmissões ao vivo para melhorar a acessibilidade do conteúdo. Os âncoras podem trabalhar rapidamente com a interface do Gradio e os espectadores veem o texto instantaneamente. - aprendizado de idiomas
Transcreva a pronúncia como texto para verificar a precisão quando os alunos praticam um idioma estrangeiro. Oferece suporte a vários idiomas, adequado para inglês, chinês e outros cenários de aprendizado. - capacidade de desenvolvimento
Os desenvolvedores podem integrar projetos em outros aplicativos para testar a funcionalidade de WebRTC ou ASR. O código aberto oferece suporte ao desenvolvimento secundário.
QA
- Preciso fazer networking?
Não é necessária conexão com a Internet para a operação local, os modelos podem ser baixados e usados off-line. A implantação na nuvem requer suporte de rede para WebRTC. - Quais são os idiomas suportados?
O inglês é suportado por padrão. ConfiguraçõeslanguageOs parâmetros podem suportar chinês, espanhol, etc., dependendo do modelo do Whisper. - Como melhorar a precisão da transcrição?
Use um microfone de alta qualidade, mantenha um ambiente silencioso e escolha um modelo grande (como umwhisper-large-v3-turbo). - Posso personalizar a interface?
Sim, editável no modo FastAPI!index.htmlAjustar estilos ou adicionar recursos. - Por que a transcrição está atrasada?
Pode ser devido à falta de desempenho do hardware ou a problemas de rede. A GPU é recomendada, verifique a configuração do WebRTC.





























