Watosn Speech to Text をPythonで使ってみよう

Watson APIのSpeech to TextをPythonで実装してみましょう

こんにちは。

AI coordinatorの清水秀樹です。

WatsonのSpeech to textを使用するには、Bluemixのユーザーアカウントが必要になります。

まだ登録していない方は以下の記事を参考にしてください。

IBM Bluemix登録方法30日間は無料で使用できるぞ

 

Python SDKも必要になります。

Python環境構築は以下の記事を参考にしてください。

Pepper用Python 2.7 SDK(WIN)セットアップ方法

Pepper用Python 2.7 SDK(MAC)セットアップ方法

 

BluemixからSpeech to Textを作成しよう

Speech to TextアプリをBluemix上で作成しましょう。

アプリの作成方法は以下の記事を参考にしてください。

カタログ上で選択するアプリを変更するだけです。

Watson APIを使った翻訳できるPepperサンプル

Watson APIのNLCを簡単に作成して使う方法

 

アプリケーションが作成できたら、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 ============
今日 は 今日 も 元気 です 
>>>

「こんにちは」が「今日は」になっていますが、ひとまずテキスト化には成功しているようです。

 

ぜひお試しあれ。

 

それではまた。

あなたにオススメの記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP