AzureのBing Speech APIで日本語のSTTを試す

Pocket

Speech To Textを試してみたかったので
Microsoft Azure のCognitive ServiceにあるBing Speech APIでSpeech Recognitionしてみる。

おおむねこちらのドキュメントを参考にすすめる。
https://www.microsoft.com/cognitive-services/en-us/Speech-api/documentation/API-Reference-REST/BingVoiceRecognition

事前の準備

Cognitive Services accountsでBing Speech API (preview)が使えるサービスを作成する。

認証を行いトークンを取得する

認証のheaderは以下を指定する。

keyvalue
Content-Length0
Ocp-Apim-Subscription-Keyさきほど作成したAPIが使えるサービスにある「RESOURCE MANAGEMENT」の「key」

検証なので、curlでリクエスト。

お返事はこちら

いい感じのJWTが返ってきます。

Speech Recognition APIにwavファイルを投げかける

同僚に喋ってもらっているのをこっそり録音して、いい感じのwavファイルを作る

これで準備は万端。

speech recognitionに必要なパラメーターは以下の通り。

key内容
scenariosulmかwebsearchと書いてあるが詳細が不明ulm
appidこのAPI固有のIDなので固定値を指定。D4D52672-91D7-4C74-8AD8-42B1D98141A5
versionAPIのバージョン3.0
format返して欲しい形式を指定するjson
locale変換してほしい言語を指定する。ja-JP
device.osデバイスの情報を記載。公式ドキュメントの例にはXBOXが載っていてすごいぞ。iPhone_OS
instanceidインスタンスのUIDをつけるb2c95ede-97eb-4c88-81e4-80f32d6aee54
requestidリクエストのUIDをつけるb2c95ede-97eb-4c88-81e4-80f32d6aee54

headerは以下を指定する。

keyvalue
Content-typeaudio/wav; samplerate=16000
AuthorizationBearer [認証で返ってきたjwt]

このリクエストに対して、返ってきたのはこちら

元の音声は
私「大きな声でおしゃべりしてごらん?」
同僚「何か誘導されているような気がする…何か…これは…何か秘密(を録音されそうなんですけど…)」

なので、そこまで遠くはないですね。
話者を判別して分けたりはできるのかな?

もうひとり別の同僚にご協力いただいて検証したレスポンスは以下の通り。

元の音声データは
同僚「・・・」
私「…樋口さんはあんまりしゃべらないんですね」
という内容だったので完璧です。何かが失敗しましたがrecognitionは完璧です。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です