Come utilizzare il riconoscimento vocale di Google di Google senza caricare video su YouTube?


15

Ho molti contenuti video delle lezioni per i quali vorrei avere i sottotitoli. YouTube genera automaticamente i sottotitoli per i video in determinate condizioni (queste condizioni sono ancora un po 'un mistero per me).

Vorrei poter utilizzare questa tecnologia di riconoscimento vocale al di fuori di YouTube. Non voglio caricare tutti i video solo per ottenere la trascrizione (che richiede troppo tempo), inoltre, non credo che YouTube lo farà per video che durano più di circa 30 minuti (la maggior parte di essi lo sono), inoltre, io non pensare che lo farà per i video elencati non pubblici (il che è un problema perché si tratta di contenuti premium destinati a essere venduti).

Scenario perfetto: esiste un programma che posso eseguire dal mio desktop per ottenere la trascrizione di questi video ed è di qualità uguale o migliore di YouTube e ha i codici temporali simili a un SRT o all'XML che YouTube genera [ Come ottieni i sottotitoli di YouTube ].

Scenario accettabile: ci sono alcuni trucchi che posso fare per costringere YouTube a trascrivere i video, sia privati ​​che pubblici, e nonostante la lunghezza.

Scenario fattibile: esiste una libreria o qualcosa che posso usare per codificare il mio programma. Sto bene con C # e va bene con C ++ (ma preferisco davvero C #).


2
grazie per il collegamento - da una prospettiva sorda, molto interessato a sentire come funziona ...
studiohack

@studiohack non è previsto un gioco di parole.
fredsbend

LOL, non me ne ero nemmeno reso conto! : P
studiohack

Risposte:


10

Google ha implementato l' API Web Speech (sia per il riconoscimento vocale che per la sintesi) in Chrome, che puoi utilizzare se sei uno sviluppatore. Questo è ciò che YouTube utilizza per generare sottotitoli su alcuni video. Forse troverai il codice per interagire con esso.

Il flusso di dati sarebbe probabilmente:

Un file video => estrae e converti audio => invialo all'API di Google => ottieni il testo => scrivi in ​​un SRT.

EDIT: non sembra esserci una pagina API ufficiale, oltre alle specifiche del W3C. Quindi ecco altri link:

Questi esempi riguardano l'utilizzo dell'API da Chrome, ma è possibile eseguire una query diretta sul motore di riconoscimento vocale online di Google. Ad esempio, Jasper , un assistente personale di riconoscimento vocale per Raspberrry Pi, ti consente di scegliere Google come motore di riconoscimento vocale.


Grazie! Lo proverò sicuramente. Se può essere fatto rapidamente (tranne che per i tempi di elaborazione), posso implementarlo nel mio prodotto. Che vantaggio sarebbe.
fredsbend,

Un'altra fonte dell'API potrebbe essere un ambiente NodeWebkit
John Dvorak,

1

C'è uno strumento chiamato "autosub" (vedi agermanidis / autosub su github) che fa esattamente questo, sebbene utilizzi l'API vocale di Google più vecchia. Lo strumento utilizza ffmpeg per rimuovere l'audio in file FLAC e quindi invia i file FLAC a Google per la trascrizione. Produce un file SRT o VTT.

L'accuratezza è in parte bassa a causa della vecchia API di Google. Esiste un'API più recente ("API REST Speech Cloud" all'indirizzo https://cloud.google.com/speech/docs/apis ). Questa API è piuttosto semplice e ad un certo punto stavo per fork su Autosub per usarlo.

L'alternativa è caricare su YouTube e scaricare il file VTT al termine della didascalia. La complicazione è che YouTube produce sottotitoli molto precisi (ad esempio un paio di parole) anziché ad esempio una frase. Ciò rende più difficile controllare i sottotitoli quando si esegue una scansione manuale.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.