Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

Ferramenta de código aberto para conversão de fala em texto em tempo real

Introdução geral

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.

Ferramentas de código aberto para conversão de fala em texto em tempo real-1


 

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.

  1. 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.
  2. 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
    
  3. 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, instale uv(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.txt
    

    Maneira 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
    
  4. Instalar o ffmpeg
    Instalação de acordo com o sistema operacional ffmpeg::
    macOS::

    brew install ffmpeg
    

    Linux (Ubuntu/Debian)::

    sudo apt update
    sudo apt install ffmpeg
    

    Windows (computador)::

    • download ffmpeg Executável (de https://ffmpeg.org/download.html).
    • Adicione-o à variável de ambiente do sistema ou coloque-o no diretório raiz do projeto.
  5. Configuração de variáveis de ambiente
    No diretório raiz do projeto, crie o arquivo .env adicione o seguinte:

    UI_MODE=fastapi
    APP_MODE=local
    SERVER_NAME=localhost
    PORT=7860
    MODEL_ID=openai/whisper-large-v3-turbo
    
    • UI_MODE: Definido como gradio Usando a interface do Gradio, defina fastapi Usar uma interface HTML personalizada (padrão).
    • APP_MODEA execução local é definida como localA implantação da nuvem está definida como deployed.
    • MODEL_IDWhisper: Especifica o modelo Whisper, padrão openai/whisper-large-v3-turbo.
    • SERVER_NAMEEndereço do servidor, padrão localhost.
    • PORTNúmero da porta, padrão 7860.
  6. Projetos em andamento
    Execute o programa principal:

    python main.py
    

    O 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.py ou 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=gradio Execute-o em seguida para acessar o endereço solicitado pelo terminal.
  • Interface FastAPISuporte à personalização e é adequado para desenvolvedores. Modificar index.html Os estilos ou recursos podem ser ajustados. Configurações UI_MODE=fastapi Após a execução, visite http://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 exemplo openai/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. language parâmetros (por exemplo language=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.py configurar transcribe tarefa 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 (consulte https://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_ID Correto e o modelo foi baixado.
    • "ffmpeg not found": certifique-se de que o ffmpeg Instalado 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. 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.
  2. Quais são os idiomas suportados?
    O inglês é suportado por padrão. Configurações language Os parâmetros podem suportar chinês, espanhol, etc., dependendo do modelo do Whisper.
  3. Como melhorar a precisão da transcrição?
    Use um microfone de alta qualidade, mantenha um ambiente silencioso e escolha um modelo grande (como um whisper-large-v3-turbo).
  4. Posso personalizar a interface?
    Sim, editável no modo FastAPI! index.htmlAjustar estilos ou adicionar recursos.
  5. 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.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Ferramenta de código aberto para conversão de fala em texto em tempo real
pt_BRPortuguês do Brasil