本記事は CogBot Advent Calendar 2017 15日目の記事です。
MicrosoftのcognitiveサービスのひとつであるSpeech API(Speech Recognition APIの表記もある)を触ってみたので手順を共有します。
Speech APIは音声からテキスト、テキストから音声への変換をAPIが提供してくれます。
公式サイトでも試すことができます。ちなみに音声認識は英語デモのみ、ノンネイティブの私の発音はあまり認識してれませんでした、特にRとLの発音が…
ライブラリも提供されており、Microsoftが公開しているC#のサンプルアプリがあるので、ソースからアプリケーションをビルドして音声認識させてみます。
以下の手順に基づきやってみました(英語のみ)
https://docs.microsoft.com/ja-jp/azure/cognitive-services/speech/getstarted/getstartedcsharpdesktop
事前の準備
- Azureのアカウントを作成しておきます。
- Visual Studio Communityエディションをインストールしておきます。
API Keyの取得
まずAPI Keyを取得します。
https://azure.microsoft.com/ja-jp/try/cognitive-services/ にアクセスします。Speech API以外にも各種cognitive系APIのKeyをここで取得できます。
今回は音声カテゴリからBing Speech APIのAPI Keyを取得します。
表示されたAPI Keyをメモしておきます。Keyは2つありますがどちらでもAPIを利用可能です。
レポジトリのダウンロード
GitHubから以下のレポジトリをローカルにcloneするか、ダウンロードして適当な場所に解凍しておきます。
https://github.com/microsoft/cognitive-speech-stt-windows
ビルド
SpeechToText-WPF-Samples.sln を選択してVisual Studioを起動させます。
x86(32ビット)、x64(64ビット)のパッケージがあるので、環境にあった方を選択します。
デフォルトだと英語の音声認識に設定されているので、日本語に変えてみます。
MainWindowXaml.csの229行目のロケール設定を ja-JP
に変更します。
変更したらBuildして実行してみます。
音声認識
Buildがうまくできれば、ウィンドウが立ち上がります。
右上のインプットボックスに先ほど取得したAPI Keyをコピーして、[Use Microphone with ShortPhrase mode] を選択、[Start Recognition]をクリックします。
右側のテキストエリアに「Please start speaking」と表示されれば音声入力待ちの状態になっています。マイクに向かって、何かしゃべってみると、音声がテキストに変換されます。
ちゃんと話した通りに認識されてます。すごい!
まとめ
11月にマイクロソフトが開催したTech Summit 2017ではセッション発表で、日本語で話した内容を逐次英語に翻訳して正面スクリーンに映し出す、ということをやっていました。Speech APIなどを使って実装している思われます。一昔前では専門的な技術者がそれなりのお金をかけないとできなかったことが、若干のノウハウは必要ですが、公開されているAPIを利用すれば、誰でも作れる世の中になってきています。
Speech APIは今回のようなリアルタイムな認識だけでなく、音声ファイルからのバッチ的な認識もできるので、今後試してみたいと思います。会議の議事録を自動で文字起こししてくれるとか夢のような世界がすぐそこに来ています。