Aprendizagem pessoal com IA
e orientação prática

BetterWhisperX: reconhecimento automático de fala separado do alto-falante, fornecendo registros de tempo altamente precisos no nível da palavra

Este artigo foi atualizado em 2024-12-29 19:34, parte do conteúdo é sensível ao tempo, se for inválido, deixe uma mensagem!

Introdução geral

O BetterWhisperX é uma versão otimizada do projeto WhisperX, com foco no fornecimento de serviços de reconhecimento automático de fala (ASR) eficientes e precisos. Como um desdobramento aprimorado do WhisperX, o projeto é mantido por Federico Torrielli, que tem o compromisso de manter o projeto continuamente atualizado e melhorar seu desempenho. O BetterWhisperX integra várias tecnologias avançadas, incluindo alinhamento forçado no nível do fonema, processamento em lote com base na atividade de fala e separação de locutores. A ferramenta não só oferece suporte à transcrição em alta velocidade (até 70 vezes a velocidade em tempo real ao usar o modelo large-v2), mas também fornece registro de data e hora preciso em nível de palavra e reconhecimento de vários locutores. O sistema usa o faster-whisper como backend, que requer menos memória de GPU para processar até mesmo modelos grandes, proporcionando uma relação desempenho/eficiência muito alta.

BetterWhisperX: reconhecimento automático de fala separado do alto-falante, fornecendo registros de tempo altamente precisos no nível da palavra-1


 

Lista de funções

  • Conversão rápida de voz em textoUso do modelo grande large-v2, que suporta transcrição em tempo real de 70x.
  • Carimbos de data e hora em nível de palavraTimestamps: fornece registros de data e hora precisos em nível de palavra por meio do alinhamento wav2vec2.
  • reconhecimento de vários alto-falantesSeparação e rotulagem de alto-falantes com pyannote-audio.
  • Detecção de atividade de vozIdentificação incorreta e processamento em lote reduzidos, sem aumento significativo da taxa de erro.
  • inferência em loteSuporte ao processamento em lote para aumentar a eficiência do processamento.
  • compatibilidadeSuporte para PyTorch 2.0 e Python 3.10 para uma ampla variedade de ambientes.

 

Usando a Ajuda

Procedimento de operação detalhado

  1. Preparação de arquivos de áudioVerifique se o formato do arquivo de áudio é WAV ou MP3 e se a qualidade do som é nítida.
  2. Modelos de carregamentoSelecione o modelo apropriado (por exemplo, large-v2) de acordo com os requisitos e carregue-o na memória.
  3. Realizar a transcriçãoTranscrição: chame a função de transcrição para executar o processamento de fala para texto e obter resultados preliminares de transcrição.
  4. carimbo de data/hora alinhadoAlinhamento de carimbo de data/hora em nível de palavra dos resultados da transcrição usando a função de alinhamento para garantir carimbos de data/hora precisos.
  5. separação de alto-falantesChamada da função diarize para reconhecimento de vários alto-falantes para obter o rótulo e o fragmento de fala correspondente para cada alto-falante.
  6. Saída de resultadosSalvar o resultado final como um arquivo de texto ou formato JSON para processamento e análise subsequentes.

1. preparação ambiental

  1. Requisitos do sistema:
    • Ambiente Python 3.10 (recomenda-se usar o mamba ou o conda para criar um ambiente virtual)
    • Suporte a CUDA e cuDNN (necessário para aceleração de GPU)
    • Kit de ferramentas FFmpeg
  2. Etapas de instalação:
# Crie um ambiente Python
mamba create -n whisperx python=3.10
mamba activate whisperx
# Instale o CUDA e o cuDNN
mamba install cuda cudnn
# Instalar o BetterWhisperX
pip install git+https://github.com/federicotorrielli/BetterWhisperX.git

2. uso básico

  1. Uso da linha de comando:
# Transcrição básica (inglês)
whisperx audio.wav
# Usando modelos grandes e maior precisão
whisperx audio.wav --model large-v2 --align_model WAV2VEC2_ASR_LARGE_LV60K_960H --batch_size 4
# Ativar a separação dos alto-falantes
whisperx audio.wav --model large-v2 --diarise --highlight_words True
# Modo CPU (para Mac OS X)
whisperx audio.wav --compute_type int8
  1. Chamadas de código Python:
importar whisperx
importar gc
dispositivo = "cuda"
audio_file = "audio.mp3"
batch_size = 16 # A GPU pode ser reduzida se houver pouca memória
compute_type = "float16" # Use "int8" quando estiver sem memória.
# 1. Carregue o modelo e transcreva-o
model = whisperx.load_model("large-v2", device, compute_type=compute_type)
audio = whisperx.load_audio(audio_file)
result = model.transcribe(audio, batch_size=batch_size)
# 2. alinhamento de fonemas
model_a, metadata = whisperx.load_align_model(language_code=result["language"], device=device)
result = whisperx.align(result["segments"], model_a, metadata, audio, device)
# 3. separação de alto-falantes (requer o token Hugging Face)
diarize_model = whisperx.DiarisationPipeline(use_auth_token=YOUR_HF_TOKEN, device=device)
diarize_segments = diarize_model(audio)
result = whisperx.assign_word_speakers(diarize_segments, result)

3. recomendações de otimização de desempenho

  1. Otimização da memória da GPU:
    • Reduzir o tamanho do lote (batch_size)
    • Uso de modelos menores (por exemplo, base em vez de grande)
    • Selecione o tipo de cálculo de peso leve (int8)
  2. Suporte multilíngue:
    • Idiomas suportados por padrão: inglês, francês, alemão, espanhol, italiano, japonês, chinês, holandês, ucraniano, português
    • Especifique o idioma a ser usado:-idioma de(Exemplo em alemão)

4. cuidados

  • Os registros de data e hora podem não ser suficientemente precisos para caracteres especiais (por exemplo, números, símbolos de moeda)
  • O reconhecimento de cenas em que várias pessoas estão falando ao mesmo tempo pode não ser eficaz
  • A separação dos alto-falantes ainda está sendo otimizada
  • Os tokens de acesso Hugging Face são necessários para usar o recurso de separação de alto-falantes
  • Garantir a compatibilidade do driver da GPU e da versão CUDA
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " BetterWhisperX: reconhecimento automático de fala separado do alto-falante, fornecendo registros de tempo altamente precisos no nível da palavra

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil