日本音響学会 北陸支部 ジョイント研究会資料

PCに於けるGoogle音声認識の利用• 山崎信久（ウィンドクラフト）• 船田哲男（元金沢大）音声認識の種類
方式

特定話者方式（特定話者での学習が必要）

不特定話者方式（学習不要）

種類

連続認識

単語認識
（限定語認識）連続認識例）

Windows搭載

音声コマンドTool

JuliusJulian(Julius統合)
AmiVoice
Google音声認識

コマンド操作

口述筆記
翻訳

ドラゴンスピー
チ
用途例

口述筆記
翻訳

Google音声認識：単語認識に近いが限定語ではない

単語認識（限定語認識）自動応答

音声認識の状況
不特定話者認識ソフト例・Ｊｕｌｉｕｓ （京都大学等）○オープンソースで高速な認識△辞書が固定学習機能がないため認識率が向上しない
・ＡｍｉＶｏｉｃｅ （アドバンスド・メディア社製品）○実用的な変換速度と認識率学習機能があり、認識率向上可能△入力依存性が高い
ヘッドセット以外では認識率低下
開発者利用は困難＊その他
翻訳ソフトの「超速通訳 ツージル」などもある。

ＡｍｉＶｏｉｃｅのデモ（メーカ）○実用的な認識速度○実用的な認識率○同音異義語の学習機能△入力の依存性大Ｇｏｏｇｌｅの音声認識の登場
・インフラの変化
ネットワークの進歩（高速化）
スマートホンの台頭（端末小型化）
・使用者の変化
通信による情報参照
キーボードレス時の入力手段
・Ｇｏｏｇｌｅが音声認識を発表
２００９年にスマートホン向けから開始

Ｇｏｏｇｌｅ音声認識デモ○実用的な認識率
キーボードより高速な入力○入力の依存性小通常環境で良好な認識△語句レベルでの認識
長文に不向きだが検索には十分△認識のタイムラグ
話しながらの認識には不向き

Ｇｏｏｇｌｅ音声認識（１）【経緯】
・２００９年末Ｇｏｏｇｌｅが発表
スマートホン向けとしてｉＰｈｏｎｅ・Ａｎｄｒｏｉｄ用に発表

【特徴】
【条件】
・不特定話者認識（学習不要）
・ネットワーク接続（要高速）
・実用的な認識率（検索で語彙の予測）【ポイント】
サーバで認識する・単語認識に近いが特定語ではない（良く検索する語句は認識率が高い）
・速度は話す速度には追いつかない（区切りが必要になる）

Ｇｏｏｇｌｅ音声認識（２）【スマートホンの状況】
ｉＰｈｏｎｅ：主に検索用のアプリとして提供されている
Ａｎｄｒｏｉｄ：上記以外に
・「音声認識インテント（入力ダイアログ風）」として開発利用可能
・ＩＭＥ版の開発によりどのアプリでも音声入力可能（ベータ）google-voice-typing-integration
https://code.google.com/p/google-voice-typing-integration/source/browse/#git%2FVoiceImeDemo【Ｇｏｏｇｌｅの提供内容】
・iPhoneアプリ内部での利用のみ（Googleの提供アプリのみの利用になる）
・Android
開発者が利用可能
音声認識をインテント（ダイアログ風）として呼び出し可能
ＩＭＥ版が利用可能
これによってあらゆる入力部分で利用可能
メモでも入力可能・ショートメールにも入力可能

Ｇｏｏｇｌｅ音声認識（３）【ＰＣの状況】
・２０１１年春ＰＣ向けＣｈｒｏｍｅに搭載
ＨＴＭＬ５の音声入力拡張として動作

音声入力の手法）
ＨＴＭＬで記述する。（ＨＴＭＬ５）<input x-webkit-speech type="text" />で入力が扱える。
条件）
上のタグを解釈できるブラウザに限る。
現状はＧｏｏｇｌｅＣｈｒｏｍｅのみそのままでは音声検索がしにくいので以下のエクステンションを入れるSpeakable Textareas
http://userscripts.org/scripts/show/108011

ＧｏｏｇｌｅＣｈｒｏｍｅデモ○スマートホンと同じ環境
マイクの制限小△ＨＴＭＬ５の記述要
ＰｌｕｇＩｎにより入力欄に音声認識追加可能
×応用（開発）利用困難
Cheromeに依存しているため

アプリケーションの現状（１）
ＯＳＡＰＩからＷｅｂＡＰＩへ
ＯＳＡＰＩの利用
デバイス

プログラム

出力構成）
処理はすべてＯＳ上のプログラムで処理される。
長所）
ネットワーク接続が不要である
短所）
・処理能力がＰＣで決まる
・複雑なプログラムでは多くの知識を必要とする
開発分量が膨大になる
専門知識が必要になる・ＯＳによる依存性が高い機種への移植が煩雑アプリケーションの現状（２）ＯＳＡＰＩからＷｅｂＡＰＩへ
ＷｅｂＡＰＩの利用
デバイス

プログラム
出力構成）
処理の中核はサーバ上のプログラ
ムで処理される。
長所）
・ＰＣの処理能力に依存しない
・複雑なプログラムが不要
パラメータを送信し結果を受け取る
・ＯＳ依存性が低い
ＨＴＴＰ通信があれば可能
短所）
・ネットワークが必須になるパラメータによっては高速必須
・中身はブラックボックス
プログラムは相手次第ＷｅｂＡＰＩの例（１）例１）
住所の地図を表示する（金沢大学の住所）
http://maps.google.co.jp/maps?q=石川県金沢市角間町&hl=ja

プログラム

ＷｅｂＡＰＩの例（２）例２）ＴＴＳ（テキストの読み上げ）
http://translate.google.com/translate_tts?tl=ja&q=こんにちは、船田先生

プログラム

ＷｅｂＡＰＩの使い方まとめプログラム

入力）
ＧＥＴやＰＯＳＴで特定のＵＲＬに通知する
出力）
結果として定められた形式で出力される例）
・地図
入力：住所や緯度経度（座標）など
出力：画像やマーカ
・ＴＴＳ（読み上げ）
入力：テキスト（＋言語）
出力：ｍｐ３形式のファイル【ＷｅｂＡＰＩの特徴】
・基本はブラウザを前提としている
記述はＨＴＭＬやＪａｖａＳｃｒｉｐｔで行う。
ＨＴＭＬも時代に応じて拡張がなされている（ＨＴＭＬ５）
・ローカルＰＣのプログラムでもＧＥＴ／ＰＯＳＴでＨＴＴＰ通信を行うことでパラメータを送信できる
返答された結果を処理することで、プログラムとして動作できる

ＷｅｂＡＰＩのデモPCに於けるGoogle音声認識（１）【Ｃｈｒｏｍｅの動作分析】
・ＨＴＭＬ５の構文解釈
音声入力→音声をサーバに入力表示←サーバから結果受信

音声認識【具体的な内部動作】
・マイクから音声データを生成（音声ファイル化する）

・それを以下にＰＯＳＴする
https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US（引数に関しては後述する）

・認識結果はＪＳＯＮ形式で返答される（結果の内容に関しては後述する）
原理サイト

http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/

PCに於けるGoogle音声認識（２）【技術内容】
１）音声入力をファイルにする
語句を区切るため「無音検出」で区切る
ファイル形式はflacまたはSpeex形式(flac形式が無難）
サンプリングレートは8KHzまたは16KHz。
16KHzのflacの時Content_Typeは"audio/x-flac; rate=16000"を指定することでGoogleに通知。

２）音声ファイルをＵＲＬにＰｏｓｔする

プログラム

引数は言語指定（英語はlang=en-US,日本語はlang=ja-JP）候補数指定（maxresult=10）などがある。

３）結果をＪＳＯＮ形式で受け取る
結果はstatus（０以外は認識できず）id（順序判定用）に候補指定の分以下が付属する。
hypotheses（予測）：utterance（発声）が認識結果、confidence（信頼性）が確からしさ。
解説サイト

http://sebastian.germes.in/blog/2011/09/

PCに於けるGoogle音声認識（３）【応用例】
ＩＥでの音声認識
１）音声入力ファイル作成
入力からFlashにてｗａｖファイル作成
中継サーバにてwav形式をflac形式に変換

２）音声ファイルのＰｏｓｔ
中継サーバからPHPでGoogleにPost。

３）結果を受け取る中継サーバで結果のトークンを受け取りFlashに通知。

作成ソフトのデモ
ＩＥデモサイトhttp://select-items.net/pfu/google/speech/終わりに（まとめ）スマートホンの発達（PC+モバイル）
ネットワークの発達（常時接続＆高速化）
・機種依存性の少ない開発
ＨＴＭＬ＋JavaScriptまたはそれに類する通信＋処理
・ＷｅｂＡＰＩの活用が加速
通信前提のアプリケーション開発複雑な内容はサーバがサービス提供
例）音声認識・音声合成・翻訳・ ＯＣＲ・地図．．．