web-dev-qa-db-ja.com

YouTubeにビデオをアップロードせずにGoogleのYouTube音声認識を使用するにはどうすればよいですか?

字幕をつけたい講義動画がたくさんあります。 YouTubeは、特定の状況下でビデオの字幕を自動的に生成します(これらの状況は、私にとってはまだ謎です)。

この音声認識技術をYouTube以外でも使用できるようにしたいと思います。トランスクリプトを取得するためにすべてのビデオをアップロードしたくない(時間がかかりすぎる)に加えて、約30分を超えるビデオ(ほとんどがそうである)に対してYouTubeがそれを行うとは思わない。さらに、公開されていない動画についてはそうなるとは思わないでください(これは、販売を目的としたプレミアムコンテンツであるため問題です)。

完璧なシナリオ:これらのビデオからトランスクリプトを取得するためにデスクトップから実行できるプログラムがあり、YouTubeと同等かそれ以上の品質で、YouTubeが生成するSRTまたはXMLと同様のタイムコードを持っています[- YouTube字幕を取得する方法 ]。

許容できるシナリオ:プライベートであろうとパブリックであろうと、長さにかかわらず、YouTubeに動画を文字起こしさせるために私ができるいくつかのトリックがあります。

実行可能なシナリオ:自分のプログラムのコーディングに使用できるライブラリーまたは何かがあります。私はC#は得意で、C++は大丈夫です(しかし、私はC#を好みます)。

16
287352

Googleは Web Speech API (音声認識と合成の両方)をChromeに実装しました。開発者はこれを使用できます。これは、一部の動画にクローズドキャプションを生成するためにYouTubeが使用するものです。多分あなたはそれと相互作用するコードを見つけるでしょう。

データフローは次のようになります。

ビデオファイル=>オーディオを抽出して変換する=> Google APIに送信する=>テキストを取得する=> SRTに書き込む。

編集:W3C仕様以外に公式のAPIページはないようです。だからここにもっとリンクがあります:

これらの例は、Chrome内からのAPIの使用に関するものですが、Googleのオンライン音声認識エンジンに直接クエリすることができます。たとえば、Raspberrry Piの音声認識パーソナルアシスタントである Jasper を使用すると、音声認識エンジンとして Googleを選択 を使用できます。

10
foucdeg

古いGoogleスピーチAPIを使用していますが、これを正確に行う「autosub」(githubのagermanidis/autosubを参照)というツールがあります。このツールはffmpegを使用してオーディオをFLACファイルにストリップし、FLACファイルをGoogleに送信して文字起こしを行います。 SRTまたはVTTファイルを生成します。

古いGoogle APIが原因で、精度が低くなっています。最近のAPIがあります( "Cloud Speech REST API" at https://cloud.google.com/speech/docs/apis )。このAPIはかなりシンプルで、ある時点で、それを使用するためにautosubをフォークする予定でした。

代わりに、YouTubeにアップロードし、キャプションが完了したときにVTTファイルをダウンロードします。これの複雑さは、YouTubeが、たとえば、2つの単語ではなく、非常にきめ細かいキャプション(たとえば、いくつかの単語)を生成することです。文。これにより、手動スキャンを実行するときにキャプションを確認することが難しくなります。

1
Dirk Grunwald

最も簡単な方法は次のとおりです。Googleドキュメントに移動し、新しいテキストドキュメントを開いて、ツールから「音声入力」を選択し、テープを再生します。はい。それは簡単です! (そして複数の言語をサポートしています)

それ以外の場合は、次のようなHTML5でローカルWebページを使用できます。 https://www.labnol.org/software/add-speech-recognition-to-website/19989/

1
Zibri