Google Cloud Speech API の使い方@1分以上の音声ファイルをテキスト化する方法

はじめに

議事録の音声データの文字化というテーマの記事をいろいろ検索し、試してみたのですが。うまくいかないことが多いので、現在のところ私が最も精度の高いと思った、「Google Cloud Speech API で1分以上の音声ファイルをテキスト化する方法」を紹介します。

まずは、検討の経緯から。

<検討>
・Googleドキュメントでマイク機能を使う
  → ストリーミング@途中で止まるのでダメ
  → ストリーミング@他の人の音声を認識しない
  → 音声ファイルの出力先をPCにしてストリーミング@途中で止まる

・ドラゴンスピーチ(1万円以上出して買ったのに。。)
  → リアルタイム入力@認識率がよくない
  → リアルタム入力@教育が必要
  → 音声ファイルの文字化は、認識率が悪い

・スピーチノート|Speechnotes
 (https://speechnotes.co/ja/
  → ストリーミング@やっぱり途中から認識しなくなる

・オンライン音声認識
 (https://www.textfromtospeech.com/ja/voice-to-text/
  → これは、かなり良かったです。
    ストリーミングかつ、認識率が高く、途中でも止まらない。
    いろんな人が話しても、しっかり反応してくれます。


で、実際に仕事で使うとなると、上司やお客さんにマイクを向けなくてはいけなくなるし、よくわからんサイトを見せながら仕事の話を記録するのもどうかなと思いましたので、やっぱりボイスレコーダーがメインになるのだろうと考えました。

Google Cloud Speech API も、当然ながら音声ファイルのテキスト化はしてくれますが、1分以上のものはローカルではできないし、形式にも制限があるので、以下にその方法を記載します。

準備

こちらのサイトのプログラムが、1分以上の音声認識に対応していました。公式サイトのサンプルはダメでした。

Google cloud speech APIとマイクで実現する、音声入力によるストリーム文字起こし
音声をすぐに文字にできたらいいのに。と思うことがあり、テキスト化までできるwebサービスは無いかを色々探していたのですが、途中で止まってしまったりするので、一番評判のいいGoogle Cloud Speech API を試してみることにしました。

まず、上記のエントリーで紹介した、「環境準備」「Google Cloud Speech API Python Sampleセットアップ」を実施します。

その後、「https://qiita.com/kamihork/items/bcc29c9bd10dd68f8eba」にある、「 transcribe.py」を作成する流れになります。

#まずは認証しておく
export GOOGLE_APPLICATION_CREDENTIALS="/home/username/ダウンロード/our-spanner-xxxx-xxxxx.json"

#作業ディレクトリに移動する
cd /home/username/myShell/python-docs-samples/speech/cloud-client

#音声認識プログラムを用意する
vim transcribe.py # 参考サイトのものを貼り付け

音声ファイルの作成

1分以上の音声をテキスト化するには、音声ファイルの条件を合わせなくてはいけません。他のサイトを見ていると、「FLAC / RAW」「16000Hz」とあるので、それに合わせます。

例えば、私のAndroidスマートフォンで録音したファイルは、m4a形式でした。ボイスレコーダーであれば、wav形式かmp3形式だと思います。これを、音声認識できるようにするため、変換します。

#音声ファイルを作業フォルダに移動する

#加工できるようにwav変換
ffmpeg -i longOnsei.m4a longOnsei2.wav

#無音削除 sox longOnsei2.wav longOnsei3.wav silence 1 0.1 1% -1 0.1 1% ';'

#音量を大きくする -h で音割れ防止
sox -v 10 longOnsei3.wav longOnsei4.wav norm -h

#レート変換と拡張子変更
sox longOnsei4.wav --rate 16k --bits 16 --channels 1 longOnsei.raw

これで、音声認識用のファイルが出来上がりました。

音声ファイルのアップロードと音声認識の実行

1分以上の音声ファイルは、ストレージ上に保存し、それを音声認識させないといけないため、以下のGoogle Cloud Platformのバケットにアップロードします。

参考サイトにある「transcribe.py」を実行します。このファイルはCloudConsoleから実行する必要はなく、ローカルから実行しても問題ないです。音声ファイルだけクラウド上にあればよいです。

python transcribe.py gs://mybacketname/longOnsei.raw

これで、音声をテキスト化した、「Output.txt」が出来上がります。
処理は録音した時間の半分くらいかかりました。

<スマートな使い方(案)>
 ①会議でスマートフォンに録音する
 ②DropboxでPCに即共有
 ③音声を加工
 ④バケットにドラックアンドドロップ
 ⑤テキスト化

この流れを、手元に置いておけば、素早く音声をテキスト化できると思います。


コメント

%d人のブロガーが「いいね」をつけました。