Microsoft/VibeVoice

Microsoft/VibeVoice


Microsoft/VibeVoice. VibeVoice é o modelo de áudio estilo Whisper da Microsoft para conversão de fala em texto, licenciado pelo MIT e com diarização de alto-falante integrada ao modelo.

A Microsoft o lançou em 21 de janeiro de 2026, mas eu não tinha experimentado até hoje. Aqui está uma linha simples para executá-lo em um Mac com uvmlx-audio (por Prince Canuma) e a conversão mlx-community/VibeVoice-ASR-4bit MLX de 5,71 GB do modelo VibeVoice-ASR de 17,3 GB, neste caso contra uma cópia baixada de minha recente aparição em podcast com Lenny Rachitsky:

uv run --with mlx-audio python -m mlx_audio.stt.generate \
  --model mlx-community/VibeVoice-ASR-4bit \
  --audio lenny.mp3 --output-path lenny \
  --format json --verbose --max-tokens 32768

Microsoft/VibeVoice

A ferramenta relatou:

Processing time: 524.79 seconds
Prompt: 26615 tokens, 50.718 tokens-per-sec
Generation: 20248 tokens, 38.585 tokens-per-sec
Peak memory: 30.44 GB

Portanto, são 8 minutos e 45 segundos para uma hora de áudio (rodando em um MacBook Pro M5 Max de 128 GB).

Eu testei contra .wav e .mp3 arquivos e ambos funcionaram bem.

Se você omitir --max-tokens o padrão é 8192, o que é suficiente para cerca de 25 minutos de áudio. Descobri isso por tentativa e erro e quadrupliquei para garantir que teria a hora inteira.

Esse comando relatou o uso de 30,44 GB de RAM no pico, mas no Activity Monitor observei 61,5 GB de uso durante o estágio de pré-preenchimento e cerca de 18 GB durante a fase de geração.

Aqui está o JSON resultante. A estrutura principal é assim:

{
  "text": "And an open question for me is how many other knowledge work fields are actually prone to these agent loops?",
  "start": 13.85,
  "end": 19.5,
  "duration": 5.65,
  "speaker_id": 0
},
{
  "text": "Now that we have this power, people almost underestimate what they can do with it.",
  "start": 19.5,
  "end": 22.78,
  "duration": 3.280000000000001,
  "speaker_id": 1
},
{
  "text": "Today, probably 95% of the code that I produce, I didn't type it myself. I write so much of my code on my phone. It's wild.",
  "start": 22.78,
  "end": 30.0,
  "duration": 7.219999999999999,
  "speaker_id": 0
}

Como se trata de um array de objetos, podemos abri-lo no Datasette Lite, facilitando a navegação.

Curiosamente, a visualização do Datasette Lite mostra três alto-falantes – identificou Lenny e eu para a conversa e, em seguida, um Lenny separado para a voz que ele usou para a introdução adicional e o patrocinador lê!

O VibeVoice só pode lidar com até uma hora de áudio, portanto, executar o comando acima transcreveu apenas a primeira hora do podcast. Para transcrever mais do que isso, você precisará dividir o áudio, de preferência com cerca de um minuto de sobreposição, para evitar erros de palavras parcialmente transcritas no ponto de divisão. Você também precisaria alinhar os IDs dos alto-falantes identificados nos vários segmentos.



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *