多言語音声認識
intentにputExtraするだけ
Language String is defined by BCP 47.
Slide 57
Slide 57 text
多言語音声認識
英語を設定して日本語を喋ると・・・
Drivemodeは超安全、超便利!
Drivemod is really safe and really useful!
Driving mode Auto and then to Bandy
ドラえもんエイジリアリゼーションリアルユース4
日本語を設定して英語を喋ると・・・
連続音声認識が日常に
OK, Google Hey Siri
Hey Alexa
Hey Google
Slide 74
Slide 74 text
連続音声認識と通常の音声認識
“OK, Google”を拾う
連続音声認識
“OK, Google”を拾う
連続音声認識
通常の音声認識
OK, Google
Play music
OK, play music with
Spotify
Slide 75
Slide 75 text
Drivemodeの連続音声認識
“Yo Drivemode”を拾う
連続音声認識
SpeechRecognizer
startListening()
Yo, Drivemode
Navigate to Gas
Station
Starting navigation...
“Yo Drivemode”を拾う
連続音声認識
認識結果から諸々の処理
Slide 76
Slide 76 text
Drivemodeの連続音声認識
“Yo Drivemode”を拾う
連続音声認識
“Yo Drivemode”を拾う
連続音声認識
How to implement?
Slide 77
Slide 77 text
Pocketsphinx
Slide 78
Slide 78 text
What is Pocketsphinx?
オフラインで認識可能
音響モデル・言語モデルは限られている(日本語はない)
キーワード定義が可能
実環境で利用可能
http://cmusphinx.sourceforge.net/
Slide 79
Slide 79 text
What is Pocketsphinx?
オフラインで認識可能
音響モデル・言語モデルは限られている(日本語はない)
キーワード定義が可能
実環境で利用可能
http://cmusphinx.sourceforge.net/
連続音声認識とオンライン認識処理は相性が悪い
Slide 80
Slide 80 text
What is Pocketsphinx?
オフラインで認識可能
音響モデル・言語モデルは限られている(日本語はない)
キーワード定義が可能
実環境で利用可能
http://cmusphinx.sourceforge.net/
日本語を使いたい場合は自分でモデルを作成する必要がある
英語でもwordと読み方を定義することは可能
Slide 81
Slide 81 text
What is Pocketsphinx?
オフラインで認識可能
音響モデル・言語モデルは限られている(日本語はない)
キーワード定義が可能
実環境で利用可能
http://cmusphinx.sourceforge.net/
OK, Googleのような使い方ができる
造語も使える
Slide 82
Slide 82 text
What is Pocketsphinx?
オフラインで認識可能
音響モデル・言語モデルは限られている(日本語はない)
キーワード定義が可能
実環境で利用可能
http://cmusphinx.sourceforge.net/
環境雑音の抑圧性能が優秀
(Juliusは自前で雑音抑圧しなければならない)
Slide 83
Slide 83 text
How to use Pocketsphinx?
連続音声認識でインコアプリを作ろう
http://qiita.com/KAKKA/items/1cbaa4adaf06b6439f2c
Slide 84
Slide 84 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-demo
PocketSphinxActivity.java
Slide 85
Slide 85 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-demo
PocketSphinxActivity.java
Slide 86
Slide 86 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
PocketSphinxActivity.java
setAcousticModel()では音響モデルを指定
このデモアプリでは英語の音響モデルがデフォルトで入っている
Slide 87
Slide 87 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
PocketSphinxActivity.java
辞書をセット
Cmudict-en-us.dictをみると英語の巨大な辞書ファイルが見られる
要件次第でここを削って必要な分だけ定義し、容量を減らす
Slide 88
Slide 88 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
PocketSphinxActivity.java
人間の声を検出したらそれをファイルとしてガンガン保存していくようになる。
ほぼデバッグ用?
Slide 89
Slide 89 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
PocketSphinxActivity.java
KeyPhraseSearchモード(後述)における検出閾値をセット
小さいほどよく検出するが、誤検出が多くなる。
1e+60から1e-60くらいまでセット可能
Slide 90
Slide 90 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
OK Googleのような特定のwordの音声認識モードを追加
setKeywordThresholdが適用される
KEYPHRASEに好きなワードを設定すると、そのワードを検出できるようになる
ただし、ワードは一つのみ
Slide 91
Slide 91 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
menuGrammarで定義された複数ワードの検出を行う
しかしmenuGrammarで定義されたワードを必ず一つ検出して返す
例: menu.gram
public = digits | forecast | phones;
「でぃ」といえば digitsが返る
Slide 92
Slide 92 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-demo
menuGrammarと同じ
digits.gram
= oh | zero | one | two | three | four | five | six | seven | eight | nine;
Slide 93
Slide 93 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-de
mo
keyPhraseSearchの複数wordバージョン
menu.gram
yo drivemode/1e-25/
ok google/1e-15/
hey siri/1e-10/
awesome droidkaigi/1e-60/
Slide 94
Slide 94 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-demo
単語辞書ファイルに造語の追記もできる
Slide 95
Slide 95 text
How to use Pocketsphinx?
公式デモアプリ
https://github.com/cmusphinx/pocketsphinx-android-demo
結果はpocketsphinxのRecognitionListerで受け取る
Slide 96
Slide 96 text
Drivemodeの連続音声認識
“Yo Drivemode”を拾う
連続音声認識
SpeechRecognizer
startListening()
Yo, Drivemode
Navigate to Gas
Station
Starting navigation...
“Yo Drivemode”を拾う
連続音声認識
認識結果から諸々の処理
Pocketsphinx
Googleアプリ
Slide 97
Slide 97 text
Drivemodeの連続音声認識
Slide 98
Slide 98 text
問題点
Slide 99
Slide 99 text
マイクは一人しか使えない
Pocketsphinx
SpeechRecognizer
OK, Google
Googleマップの
SpeechRecognizer
Slide 100
Slide 100 text
マイクは一人しか使えない
SpeechRecognizer
Pocketsphinx
OK, Google
Googleマップの
SpeechRecognizer