Como usar o reconhecimento de fala do YouTube no Google sem enviar vídeos para o YouTube?

15

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 #).

287352
fonte
2
obrigado pelo link acima - de uma perspectiva surdo, muito interessado em saber como isso funciona ...
studiohack
@studiohack sem trocadilhos.
287352 31/03
LOL, eu nem percebi isso! : P
studiohack

Respostas:

10

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.

foucdeg
fonte
Obrigado! Certamente vou tentar isso. Se isso puder ser feito rapidamente (exceto pelo tempo de processamento), eu posso implementar isso no meu produto. Que benefício isso seria.
287352
Outra fonte da API pode ser um ambiente NodeWebkit
John Dvorak
1

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.

Dirk Grunwald
fonte