Watson APIのSpeech to TextをPythonで実装してみましょう
こんにちは。
AI coordinatorの清水秀樹です。
WatsonのSpeech to textを使用するには、Bluemixのユーザーアカウントが必要になります。
まだ登録していない方は以下の記事を参考にしてください。
Python SDKも必要になります。
Python環境構築は以下の記事を参考にしてください。
Pepper用Python 2.7 SDK(WIN)セットアップ方法
Pepper用Python 2.7 SDK(MAC)セットアップ方法
BluemixからSpeech to Textを作成しよう
Speech to TextアプリをBluemix上で作成しましょう。
アプリの作成方法は以下の記事を参考にしてください。
カタログ上で選択するアプリを変更するだけです。
アプリケーションが作成できたら、Bluemixのダッシュボード上のサービス欄にSpeech to Textが表示されていることを確認しましょう。
サービスを使用するためのサービス資格情報は、上記赤丸部分をクリックすれば次画面で取得できます。
API発行時に使用するのでメモしておきましょう。
音声データの準備
次は音声データの準備です。
特に難しいことはありません。
Windowsであればボイスレコーダーを使用して音声を取得できますし、MACであればQuickTime Playerのファイルメニュー内にある新規オーディオ収録から録音が可能です。
ただし注意点として、Speech to Textでは使用できる音声データが決まっています。
使用できる音声データは、FLAC、WAV、OGGといった形式になるため、WindowsやMACで録音した音声データをそのまま使用することができません。
適当なツールなりサイトなりを利用して、Speech to Textで使用できる音声データに変換しておきましょう。
この例では「こんにちは。今日も元気です」と録音したデータを使用しています。
Pythonコード
Pythonコードは以下通りです。
特に難しくありません。
import requests import json url = 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=ja-JP_BroadbandModel' username = 'サービス資格情報から取得' password = 'サービス資格情報から取得' headers={'Content-Type': 'audio/flac'} audio = open('音声データのファイルのパス', 'rb') r = requests.post(url, data=audio, headers=headers, auth=(username, password),) res =json.loads(r.text) for result in res['results']: for alternative in result['alternatives']: text = alternative['transcript'] print text
ソースコードのダウンロードはこちらから → speech-to-text.zip
上記ソースを実行して、結果画面に録音した音声データのテキストが表示されていれば成功です。
============ RESTART: speech-to-text.py ============ 今日 は 今日 も 元気 です >>>
「こんにちは」が「今日は」になっていますが、ひとまずテキスト化には成功しているようです。
ぜひお試しあれ。
それではまた。
この記事へのコメントはありません。