Eu tenho muitos conteúdos de vídeo de palestras para os quais gostaria de ter legendas. O YouTube gera automaticamente legendas para vídeos sob certas condições (essas condições ainda são um mistério para mim).
Eu gostaria de poder usar essa tecnologia de reconhecimento de fala fora do YouTube. Não quero fazer upload de todos os vídeos apenas para obter a transcrição (que consome muito tempo). Além disso, não acho que o YouTube faça isso para vídeos com mais de 30 minutos de duração (a maioria deles). não pense que será o caso de vídeos não públicos listados (o que é um problema, porque é um conteúdo premium que deve ser vendido).
Cenário perfeito: existe um programa que posso executar na minha área de trabalho para extrair a transcrição desses vídeos e é de qualidade igual ou melhor que a do YouTube e possui códigos de tempo semelhantes a um SRT ou XML que o YouTube gera [ Como obter legendas do YouTube ].
Cenário aceitável: existem alguns truques que posso fazer para forçar o YouTube a transcrever os vídeos, seja ele privado ou público, e apesar da duração.
Cenário factível: existe uma biblioteca ou algo que eu possa usar para codificar meu próprio programa. Eu sou bom com C # e tudo bem com C ++ (mas eu realmente prefiro C #).
Respostas:
O Google implementou a API do Web Speech (tanto para reconhecimento de voz quanto para síntese) no Chrome, que você pode usar se for um desenvolvedor. É isso que o YouTube usa para gerar legendas em alguns vídeos. Talvez você encontre código para interagir com ele.
O fluxo de dados provavelmente seria:
Um arquivo de vídeo => extrai e converte áudio => envia para a API do Google => obtém o texto => grava em um SRT.
EDIT: parece não haver uma página oficial da API, além da especificação do W3C. Então, aqui estão mais links:
Esses exemplos são sobre o uso da API no Chrome, mas você pode consultar diretamente o mecanismo de reconhecimento de fala on-line do Google. Por exemplo, Jasper , um assistente pessoal para reconhecimento de fala do Raspberrry Pi, permite escolher o Google como o mecanismo de reconhecimento de fala.
fonte
Existe uma ferramenta chamada "autosub" (consulte agermanidis / autosub no github) que faz exatamente isso, embora use a API de fala mais antiga do Google. A ferramenta usa ffmpeg para extrair o áudio em arquivos FLAC e depois envia os arquivos FLAC ao Google para transcrição. Produz um arquivo SRT ou VTT.
A precisão é baixa em parte devido à API do Google mais antiga. Existe uma API mais recente ("API REST do Cloud Speech" em https://cloud.google.com/speech/docs/apis ). Essa API é bem simples e, em algum momento, eu iria bifurcar o autosub para usá-la.
A alternativa é fazer o upload para o YouTube e baixar o arquivo VTT quando a legenda estiver concluída. A complicação disso é que o YouTube produz legendas muito refinadas (por exemplo, algumas palavras) em vez de, por exemplo, uma frase. Isso dificulta a verificação das legendas ao fazer uma digitalização manual.
fonte
A maneira mais fácil é a seguinte: acesse o google docs, abra um novo documento de texto e selecione uma das ferramentas "digitação por voz" e toque sua fita. Sim. É tão fácil! (e suporta vários idiomas)
Caso contrário, você pode usar uma página da Web local com HTML5 assim: https://www.labnol.org/software/add-speech-recognition-to-website/19989/
fonte