Google Cloud Speech-to-Text ストリーミング入力お試し

概要

Speech-to-Text APIでストリーミング入力を試してみたので、やったことを記録しておきます。

プログラム

ほとんどストリーミング入力の音声を文字に変換するのサンプルコードのままですが、ここに置いてあります。

https://github.com/massakai/google-cloud

以下のところを変更しています。

  • 日本語で音声認識する
  • 日本語をキーワードでプログラムを終了する
            # Exit recognition if any of the transcribed phrases could be
            # one of our keywords.
            if re.search(r"\b(終了|停止|終わり)\b", transcript, re.I):
                print("Exiting..")
                break

            num_chars_printed = 0


def main():
    # See http://g.co/cloud/speech/docs/languages
    # for a list of supported languages.
    language_code = "ja-JP"  # a BCP-47 language tag

システム構成図はこんな感じです。

構成図

Google Cloudプロジェクトの準備

プロジェクトの作成

Google Cloudのプロジェクトがなければ作成します。

作成したプロジェクトに切り替えます。

Cloud Speech-to-Text API 有効化

サービスアカウントの作成

認証情報の作成&ダウンロード

動作確認

# ソースコードのダウンロード
$ git clone https://github.com/massakai/google-cloud.git
$ cd google-cloud

# 仮想環境構築
$ python3.11 -m venv .virtualenv
$ source .virtualenv/bin/activate

# パッケージマネージャのインストール
$ pip install poetry

# Macの場合 Homebrew で portaudio をインストールする
# インストールしていないと、PyAudioインストール時に"could not import the pyaudio c module"のようなエラーメッセージが出るため
$ brew install portaudio


# 依存パッケージのインストール
$ poerty install

# サービスアカウントの認証情報ファイルへのパスを環境変数に設定する
$ export GOOGLE_APPLICATION_CREDENTIALS=~/Downloads/speech-to-text-trial-388407-124a8c72e3e2.json

# プログラム実行
$ python gcloud/speech2text/main.py

# マイクのアクセスを許可する
# 何か喋ってみる

PyCharmから実行しているのでコマンドとかが若干違いますが、以下のように話した言葉がコンソールに出力されました。

プロジェクトの削除

もう使わないようであれば、プロジェクトを削除しておきます。

参考

コメントする