7
9

More than 5 years have passed since last update.

Google Cloud Speech APIを使って音声ファイルから文字起こし

Last updated at Posted at 2018-02-26

Google音声入力APIを使ってDialogflowでの口語会話の実現を目指します

1. Google音声認識APIを試してみる

  • CLOUD SPEECH APIでサインアップして、音声認識を試してみます

スクリーンショット 2018-02-26 17.02.18.png

  • 試してみて、使えそうであれば、次はプログラムからこの機能を呼び出し(API)て使用してみます。次項へどうぞ。

2. Google Cloud Speech APIを使用可能にします

-Google Cloud Speech クイックスタートなどを参照し、Google Cloud PlatformコンソールでCloud Speech APIを使用するプロジェクトを用意し、Cloud Speech APIを有効化します

3. Google Cloud Speech APIの認証

スクリーンショット 2018-04-10 22.39.00.png

  • 「APIとサービス」画面で「認証情報」を選択します
  • 「認証情報」の画面で「サービスアカウントキー」を作成します

スクリーンショット 2018-04-10 22.39.42.png

  • 「サービスアカウントキーの作成」画面で、サービスアカウントを選択もしくは新規作成し、「JSON」形式でキーファイルを生成し、ダウンロードします。プロジェクト名-xxxxx.jsonファイルがダウンロードされます

スクリーンショット 2018-04-10 22.40.16.png

4. サンプルアプリを用意します

5. 実行環境を準備します

  • 下記のコマンドで環境変数として前々項でダウンロードしたjsonファイルを指定して認証情報を設定します
export GOOGLE_APPLICATION_CREDENTIALS=XXXXX-XXXXXXXXXXXX.json
  • ターミナルを開き、上記のファイルをダウンロード/解凍したフォルダへ移動し、
pip install -r requirements.txt

で必要な道具をインストールします

  • 下記のコマンドを実行し、サンプルファイル(audio.raw)に含まれる言葉を文字にしてみます
cd python-docs-samples-master/speech/cloud-client
python transcribe.py resources/audio.raw 

下記の結果が得られることを確認します。

Transcript: how old is the Brooklyn Bridge

6. 日本語で録音した音声ファイルを用意します

7. 日本語用プログラムを用意し、実行してみます

  • 上記のtranscribe.pyをコピーして日本語用のプログラムを用意します
cp transcribe.py transcribe_jp.py
  • 上記のプログラムをatomなどで開き、下記の箇所を編集します
transcribe_jp.py
def transcribe_file(speech_file):
:
    config = types.RecognitionConfig(
        encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
        sample_rate_hertz=44100,
        language_code='ja-JP')
  • RecognitionConfig.AudioEncodingは音声ファイルが FLACであればFLAC、WAVファイルであればLINEAR16に設定します
  • sample_rate_hertzは録音した際の録音レート(周波数)に設定します
  • language_codeja-JPに設定します(日本語であれば。) サポートされている言語はGoogle Cloud Speech API - 言語のサポートで確認できます

  • 実行してみます

python transcribe_jp.py resources/myaudio.flac 

うまくいきました。

Transcript: こんにちは

8. 音声で入力した文字列をデータベースに格納する

9. Dialogflowと連携します

  • Dialogflowでチャットボットをつくってみるなどを参照してDialogflowのフローを用意します
  • APIを確認します
  • API呼び出しで前項で入手した日本語文字列をDialogflowへ渡します
  • 返却されるchatの答えをGoogle HomeやPepperなどで喋らせてみます

参考情報

  1. Google Cloud Speech API ドキュメント
  2. WAVでの録音 - mattdiamond/Recorderjs
  3. FLACでの録音 - mmig/speech-to-flac
7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9