見出し画像

Google Speech to Textを素人が頑張って導入したメモ

悪戦苦闘しながら「GCP」(Google Cloud Platform)の「Speech-to-Text」で文字起こし導入した時の備忘録です。
先人の知識を参考にしながら設定を進めましたが、書いてある通りには行かない事が多かったので自分用のメモとして残します。

筆者スキル・状況
・GCP:初耳
・Python:使用したことはない
・ターミナル:WEB制作で使うくらい(sassのコンパイルくらい)
・mac os Monterey  12.2.1

1.GCPでプロジェクトの作成・APIの有効化

1) GCPの「Google Cloud Console」を開く。
2) トップ画面上端の「プロジェクト名」から新規プロジェクトを作成。
3) トップ画面上端の「検索ボックス」で「Speech-to-Text」を検索し、「有効にする」ボタンを押す。


2.サービスアカウントキーの取得

1)「Cloud Console」のメニュー「APIとサービス」を開く。
2)「認証情報 → 認証情報を作成 → ウィザードで選択」を選択。
3)「1. 必要な認証情報の種類を調べる」で、以下を設定し、「必要な認証情報」ボタンを押す。

・使用するAPI : Cloud Speech-to-Text API
・"Compute Engine、Kubernetes Engine、App Engine、Cloud Functions でこの API を使用する予定はありますか?" : いいえ

4)「2. 認証情報を取得する」で、以下を設定し、「次へ」ボタンを押す。

・サービスアカウント名 : 任意のもの
・ロール : Project → オーナー ※ どのリソースにアクセスできるかに影響

5)認証が成功後、「サービス アカウント」の欄に作成されたアカウントを選択し、画面上部メニューの中から「キー」を選択。
キーのタイプ「JSON」を選ぶとサービスアカウントキー」(JSONファイル)がダウンロードされます。このファイルを読み込むことで、「Speech-to-Text」のAPIを利用できるようになる。


3.Cloud Storageに音声ファイルをアップロード

1)「Cloud Console」のメニュー「Cloud Storage→ ブラウザ 」を選択。
2)「バケットの作成」を選択し、下記の内容で必要情報を入力し「作成」する。

・名前:任意のもの
・データの保存場所:asia
・デフォルトストレージ:任意
アクセスコントロール:きめ細かい管理
・その他:特に触らなくてOK

3)Flacかwavファイルに変換済みの音声ファイルをバケットにアップロードする。
4)公開アクセスが非公開になっている場合は、今回使うストレージの右端にある:(点が縦に三つ)マークを押して、バケットの権限を編集をクリックし、下記の操作を行ってストレージを公開する。

「アクセス権を編集」→「+ エントリを追加」→以下を設定→「保存」
 ・[エンティティ] には [公開(public)] を選択。
 ・[名前] には [allUsers] を選択します。
 ・[アクセス権] には [読み取り] を選択します。

参考:
https://qiita.com/Sicut_study/items/ad3c7ad2909df70e77be
https://cloud.google.com/storage/docs/access-control/making-data-public?hl=ja


4.Google Cloud SDKをインストールする

Cloud SDK:Google Cloud でホストされるリソースやアプリケーションの管理に使用できる一連のツール

1)macでサポートされているバージョンの Python を使用していることを確認。 ※Python 3(3.5~3.8、3.7 を推奨)と Python 2(2.7.9 以降)
2)ここからOSに合わせたパッケージをDL、ホーム ディレクトリに展開する。
3)ターミナルを使ってインストールスクリプトを実行する。

次のコマンドを使用して(前の手順で展開したフォルダのルートから)スクリプトを実行。

$ pwd:現在のディレクトリを確認
./google-cloud-sdk/install.sh

途中幾つかYes/Noを聞かれるので、基本的にはYesを選択して先に進める。

4)インストール成功後、gcloud init を実行して SDK を初期化

./google-cloud-sdk/bin/gcloud init

途中、利用したいプロジェクト名を聞かれるので対応する番号を入力して[Enter]を押下。認証のためにGoogleアカウントのログインを促されるので合わせて実施。

This account has a lot of projects! Listing them all can take a while.
[1] Enter a project ID
[2] Create a new project
[3] List projects
Please enter your numeric choice:

画面操作が完了すると、利用するプロジェクトの選択を促されるので、今回使用するプロジェクトを選択。プロジェクトやその他情報が出力されるとコマンドのインストールは完了。

Pick cloud project to use: 
[1] oo-xxxxx-yyyyyyyy
[2] tokyo-xxxxxxx-00000000
[3] Create a new project
Please enter numeric choice or text value (must exactly match list 
item):  1


5.JSONのパスを設定

1)「Google Cloud Console」からGoogle Cloud SDKインストール後に作成される「Google Cloud SDK Shell」を起動
2)準備したSpeech To TextのAPIを利用するために、環境変数を設定するコマンドを「Google Cloud SDK Shell」のターミナル上で実行。
設定してもパスの指定が正しい場合でも間違っている場合でも特にメッセージは表示されない。

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

✳︎このパスの設定は、一度パスを設定しても、Google Cloud SDK Shellを閉じた場合、毎回設定する必要がある。

ファイルパスの確認&コピー:option + command + C

6.音声ファイルの文字変換

Google Cloud SDK Shellのターミナルからコマンドを使い、音声認識を実行

「gs://~~」リンクの確認方法は、Cloud Storageで該当ファイルを選択、
「オブジェクトの詳細」→「ライブオブジェクト」の中段付近で確認可能

●短い音声ファイルの場合(60秒未満)

gcloud ml speech recognize 'gs://cloud-samples-tests/speech/brooklyn.flac' \
--language-code='ja-JP'

●長い音声ファイルの場合(1分以上)

gcloud ml speech recognize-long-running \
   'gs://cloud-samples-tests/speech/brooklyn.flac' \
    --language-code='ja-JP' --async

リクエストが成功すると、サーバーは長時間実行オペレーションの ID を JSON 形式で返します。

{
 "name": OPERATION_ID
}

次のコマンドを実行すると、オペレーションに関する情報を取得できます。

gcloud ml speech operations describe OPERATION_ID

オペレーションが完了すると、音声文字変換の結果が JSON 形式で返されます。


7.参考


今回、一番困ったのは自分のPCにインストールしているpythonが3.9の最新で、それに関するエラー解決方法がわからなかったことでした。

●Cloud SDKインストール
https://cloud.google.com/sdk/docs/install?hl=ja
https://www.youtube.com/watch?v=F_yMwclgHR8
https://dev.classmethod.jp/articles/install-google-cloud-sdk-in-mac-osx/


●Python 3.9問題
https://zenn.dev/ytkhs/articles/85792f0f14474f
https://ema-hiro.hatenablog.com/entry/2020/11/11/030040

●Cloud Shell の起動
https://cloud.google.com/shell/docs/launching-cloud-shell?hl=ja

●環境変数)
https://cloud.google.com/docs/authentication/getting-started#linux-or-macos

●音声ファイルの文字変換
https://cloud.google.com/speech-to-text/docs/sync-recognize?hl=ja#speech-sync-recognize-gcs-gcloud

●Cloud Storage
https://blog.apar.jp/web/8971/#toc8
https://cloud.google.com/storage/docs/access-control/making-data-public?hl=ja
https://qiita.com/Sicut_study/items/ad3c7ad2909df70e77be

この記事が気に入ったらサポートをしてみませんか?