猫になりたい猫になりたいコンサルのデータ分析屋、計量経済とか機械学習をやっています。pyてょnは3.7を使ってマスコレルウィンストングリーン。Speech-to-Text(Speech-to-Text)の使い方についてまとめました。Storage上の音声ファイルをテキストに変換する方法についてまとめています。既存のネット上の情報だけでは音声ファイルの設定方法の詳細が書いて無く上手くいかないところがあったので、出来るだけこの記事だけで完結出来るようにしました。Shell上だけで行えるようもしました。準備Speech-to-Textを試す前にAPIのセットアップやデータの用意等必要な準備を済ませましょう。GCPのナビゲーションメニューの[APIとサービス]>[ライブラリ]からAPIライブラリのページに飛びます。したら検索窓に「speech」と入れてSpeech-to-textのページに飛びましょう。Speech-to-textを検索するSpeech-to-textのページに飛んだら「有効化」のボタンを押してapiを有効化をします。以下のような画面になったら有効化完了です。認証情報(サービスアカウントキー)の作成Speech-to-Textを利用するための認証情報を作成します。[APIとサービス]>[認証情報]からAPIライブラリのページに飛びます。認証情報設定の画面に遷移する認証情報の画面に移動したら「認証情報を作成」からサービスアカウントキーを選択しましょう。認証情報画面で新しくサービスアカウントキーを作成するそしたらサービスアカウントキーの設定画面に必要事項を記載したら「作成」ボタンを押します。サービスアカウント名とサービスアカウントIDは任意の名前をつけて下さい、今回はtest-svc-accountという名前で作成しています。Fig.5では隠れてしまっていますが、サービスアカウント名の右隣にある「役割」は図のように[Project]>[オーナー]を指定しました。サービスアカウントキーを作成するとjsonファイルがダウンロードされるので無くさない様に分かりやすいところに保存しておきましょう。Storage上に作成します。「バケットの作成」ボタンからバケットの作成画面に飛ぶ適当な名前とリージョンを指定したら画面下部の「作成」ボタンを押下します。「名前」と「場所」のみ任意の名前を指定して作成これで音声ファイルをアップロードする場所が作成できました。YouTubeという5分ほどの動画の音声を抜き出して使用しました。youtubeの動画をmp3の音声に変換する適当なサービスを利用してmp3ファイルをダウンロードしておきましょう。(Speech-to-Textではmp3は使用できないのですが、後でエンコーディングを変更の仕方を解説するのでここではそのままにしておいて下さい。Storageの管理画面の先程作ったバケットの名前をクリックし、バケットの詳細画面から音声ファイルをアップロードします。バケットの詳細画面に先程ダウンロードしたmp3ファイルをドラッグ&ドロップしてアップロードするここまでで準備はおしまいです。Shell上からSpeech-to-Textを動かしてみましょう。Shellを立ち上げておきます。Shellの環境にアップロードします。Shellのアップロードボタンから1-2でダウンロードした、サービスアカウントキーのjsonファイルをアップロードしましょう。確認するとjsonファイルがアップロードされているのが確認できます。アップロードしたjsonファイル(赤枠)が確認できるアップロードが確認できたら、サービスアカウントキーを環境変数に登録しましょう。ShellのインスタンスからSpeech-to-Textを実行することが出来るようになりました。次に文字に起こす音声ファイルをSpeech-to-Textが認識可能な形式に変更します。Googleは中でもFLACかLINEAR16コーデックをおすすめしているので、今回はFLACに変換しました。Storage内に書き戻すことにしました。ターミナルで以下を実行しましょう。以降のバケット名(ここではtest-test989)やファイル名(敬語の基本.mp3、敬語の基本.flac)は自身のバケット名に適宜置き換えてください。Storageを確認してみて次のようにflac形式のファイルが追加されていれば成功です。テキストへの変換プログラムの作成と実行ここまで実行したら、後はSpeech-to-Textを実行するプログラムを書いて動かすだけです。実行に必要なpythonのgoogle-cloud-speechパッケージをインストールします。Shell上にアップロードしましょう。ファイル名はtranscribe.pyとしています。Shell上のpythonは2.7なので久々に2.7で書いたのですが、文字エンコード周りが死ぬほど面倒くさいですね......)尚、Speech-to-Textには音声認識のための3種類のapiがありますが、1分以上の音声ファイルはlong_running_recognizeメソッドを使え、と長い音声ファイルの文字変換に記載がありましたので、今回はこちらのメソッドを使用します。作成したプログラムをホームディレクトリにアップロードする以下のコマンドを叩いて実行しましょう。gs://test-test989/敬語の基本.flac実行して暫く待つと処理が終わり、以下の様に実行ファイルと同じ階層にoutput.txtが出力されます。output.txtが出力されていることが確認できるheadで中身を確認すると以下のようになっている筈です。簡単そうな動画を選んだこともあってか、見た感じ概ね良好な結果になっていますね。Speech-to-Textを用いて音声ファイルを文字に変換してみました。Speech-to-Textを使う際には入力ファイルの形式に少し気を使う必要はありますが、それさえどうにかしてしまえば簡単に使えることは魅力的です。音声データを文字に変換してテキスト解析にかけられるため、今まではテキスト解析にかけられなかった様なデータも分析できるようになることでしょう。一方で、話者が複数存在する場合に話者を分けて出力をすることはでき無さそうなので、その様な分析をする際はなにか別の方法をとる必要がありそうです。Qiita超初心者でもgoogle-cloud-speechを使えるが、つまずいた所はある。クライアントライブラリの二種類があります。ここで使用しているのはアルファ版のクライアントライブラリの方です。前回の記事(VGG16をkerasで実装した)の続きです。Storage上の音声ファイルをテキストに変換する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。