【Xcode5.1.1 + iOS 7.1 + MacOX10.9.5】
音声認識機能を調べていて、OpenEarsは日本語には今ひとつなので、非公式クラスらしけど、UIDictationControllerを使ってテストしてみました。
【参考】
・iOS 5.1 の音声入力を使ってアプリケーションを操作してみる – 24/7 twenty-four seven
・【iOS】【JPlayer】再生/停止の切り替えで音声認識をスタートして自動でストップする – The jonki
何故か1つ目のリンクのサンプルはうまく動かなくて、2つ目のリンクの方は音楽プレーヤーに組み込まれているので、音声認識だけを切り出してサンプルを作ってみました。
参考にしたリンクによれば、音声認識はキーボード経由でのみ行われ・・・
1.キーボードを表示。
2.音声入力ボタンを押す。
3.話す。
4.完了ボタンを押す。
という手順を踏んだ後、録音された音声がサーバ経由で文字列変換されて戻ってくるらしいです。
で、上記2.と4.を自動化するメソッドが、UIDictationControllerという非公開クラスに含まれています。
※キーボードは、UITextInputを紐付けた不可視のUIViewを用意して、becomeFirstResponderで表示する。
※UITextInputを使うので、必要なメソッドが定義されていないと、かなりの数のエラーがでます。警告だけど。
このサンプルでは、開始ボタンを押すと音声認識が開始(startDictation)され、timer(4.75秒)もしくは停止ボタンで音声認識が終了(stopDictation)するようになっています。画面はこんな感じ。
認識率はさすがにいいです。コレ、早く公開APIにしてくれたらいろいろ使えそうなのになあ。iOS5.1からずっと非公開ってことは何かあるんですかね、問題が。
音声認識を使ったアプリのアイデアはあるんですが、OpenEarsで試してみるか、この方式で作っておいて公開APIになるまで寝かしておくか、悩みどころです。
一応、ソースをGitHubに上げてみました。初めてのGitHub(笑)。ご参考までに。