
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 ============
今日 は 今日 も 元気 です
>>>
「こんにちは」が「今日は」になっていますが、ひとまずテキスト化には成功しているようです。
ぜひお試しあれ。
それではまた。
この記事の技術を、現場で実装したい方へ
AI×IoTの技術顧問として、月額契約で継続伴走しています。PoC設計・技術判断・組織設計・ベンダー管理・実装支援まで、現場で動くまで一緒に進めます。受託開発(請負)ではありません。
→ AI技術顧問サービスの詳細 / 無料30分オンライン診断 / 料金一覧






コメントはまだありません。