Cloud Speech-to-Textの非同期認識で音声をテキスト変換する

こんにちは。香田です。

GCPで提供されている音声をテキスト変換してくれるSpeech-to-Textですが、120もの言語と方言に対応しており、Googleの機械学習技術が応用されているのは心強いですね。

今回、1分以上のファイルをテキスト変換する時に利用する非同期認識の使用例について簡単に紹介していきます。

Speech-to-Textについて

Speech-to-TextはGCPで提供されている機械学習を活用して音声をテキストに変換してくれるサービスです。

Speech-to-Text APIに音声を送信すると、文字変換されたテキストを受け取ることができます。

Speech-to-Textには、同期認識非同期認識ストリーミング認識の3つの音声認識方法があります。

短い音声ファイル(1 分未満)をテキストに変換する場合は同期認識を利用し、長い音声ファイル(1 分以上)をテキストに変換する場合は非同期認識を利用します。

マイクからの入力などリアルタイムにテキスト変換する場合はストリーミング認識を利用します。

音声ファイルを用意する

今回、日本語の1分以上の音声ファイルを用意し、非同期音声認識の使用例を紹介していきます。

サンプルで使えそうなファイルがなければ、QuickTime Playerでサンプルファイルが作成可能です。

下記を参考に1分以上のオーディオファイルを録音し、m4aファイルを作成します。

MacのQuickTime Playerでオーディオを録音する

作成できたらSpeech-to-Text APIで利用できるように、m4aファイルを変換用のオンラインサイトなどを利用し、FLACファイルへ変換します。

Speech-to-Text 非同期認識の使用例

作成したFLACファイルをGCSにアップロードします。

gsutil cp sample.flac gs://sample-bucket/speech-to-text/sample.flac

gcloudコマンドを利用してリクエストを送信します。sample-ratefileコマンド等で確認できます。

gcloud ml speech recognize-long-running \
gs://sample-bucket/speech-to-text/sample.flac \
--language-code='ja-JP' \
--encoding='FLAC' \
--sample-rate='48000' \
--async

成功すると下記のようなオペレーションIDが返却されます。

{
  "name": "758999693014321064"
}

下記でオペレーションIDを指定し変換します。

gcloud ml speech operations wait 758999693014321064

下記のような実行結果が確認できたら成功です。

{
  "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse",
  "results": [
    {
      "alternatives": [
        {
          "confidence": 0.8902909,
          "transcript": "こんにちはこんにちはこんにちは"
        }
      ]
    },
    {
      "alternatives": [
        {
          "confidence": 0.9448854,
          "transcript": "テストテストテスト"
        }
      ]
    }
  ]
}

さいごに

Speech-to-Textの非同期認識の使用例いかがでしたでしょうか。

何度かテキスト変換してみましたが、音声がクリアに録音できているとわりと精度よくテキスト変換してくれました。

簡単なコマンド実行のみで、音声をテキスト変換してくれるのは魅力的ですね。

最後までご覧頂きありがとうございます!

SNSでもご購読できます。