概要
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から実行しているのでコマンドとかが若干違いますが、以下のように話した言葉がコンソールに出力されました。
プロジェクトの削除
もう使わないようであれば、プロジェクトを削除しておきます。