音声検索のAPI

1,164 views
Skip to first unread message

mizmit1222

unread,
Dec 7, 2009, 3:27:49 AM12/7/09
to Android-SDK-Japan
みずの@組み込みWGです。

本日公開された日本語での音声検索、あまりの素晴らしさに唖然としています。

ところで、ApiDemosにあるapp/VoiceRecognition.javaで、音声検索をAPIから
利用する方法が示されています。

http://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_LANGUAGE_MODEL

今のところAPIには free_form/web_search しか定義されていないようですが、
日本語の場合はどのような指定をすればいいのでしょうか?

お分かりになる方がいらしたら、情報共有していただけると幸いです。

ではでは。

androkun

unread,
Dec 7, 2009, 9:01:43 AM12/7/09
to Android-SDK-Japan
水野さん

推測ですが、認識結果がfree_formの場合、前置詞などが含まれ、web_searchでは、単語のみかと思われます


それを確認しようとテストプログラムを作成しましたが、発話が英語として扱われ確認できません
例えば、東京と発話しても認識結果がtokyoとなってしまいます


環境 GDD Ver1.6 ロケール 日本で、使用しているコードは下記のものです

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra
(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
startActivityForResult(intent, REQUEST_CODE);

言語設定の方法をご存知でしたらご教授願います。



On 12月7日, 午後5:27, mizmit1222 <mizmit1...@gmail.com> wrote:
> みずの@組み込みWGです。
>
> 本日公開された日本語での音声検索、あまりの素晴らしさに唖然としています。
>
> ところで、ApiDemosにあるapp/VoiceRecognition.javaで、音声検索をAPIから
> 利用する方法が示されています。
>
> http://developer.android.com/reference/android/speech/RecognizerInten...

pccra...@gmail.com

unread,
Dec 7, 2009, 11:19:12 AM12/7/09
to Android-SDK-Japan
ピーシークラフトです。

言語設定らしき設定は

キー:RecognizerIntent.EXTRA_LANGUAGE

みたいですが、

値:Locale.JAPANESE

で入れたところ、String を入れろという例外が出ました。


intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,
Locale.JAPANESE.toString());

で例外発生せず。
これで良いと思われますが、英語の結果しか返って来ません。

Locale.JAPAN.toString()

でも同様でした。

現状、 intent 対応未実装とか別の EXTRA が追加になったなどの可能性が
濃厚ではないでしょうか。
待ちに待っていた機能だけにちょっと残念です。

esmasui

unread,
Dec 7, 2009, 12:22:06 PM12/7/09
to Android-SDK-Japan
ごにょごにょして確認してみたところ、RecognizerIntent.EXTRA_LANGUAGEで渡された値は、
RecognitionService.setLanguage(String)に渡されますが、setLanguage()の中身は空でした。。。

androkun

unread,
Dec 8, 2009, 11:39:28 PM12/8/09
to Android-SDK-Japan
前に記載したコードでさっき突然日本語の認識ができるようになりました。

free_form/web_searchの違いは いくつか試してみます。

On 12月7日, 午後11:01, androkun <andro...@gmail.com> wrote:

pccra...@gmail.com

unread,
Dec 9, 2009, 12:10:31 AM12/9/09
to Android-SDK-Japan
ピーシークラフトです。

どうやらアップデートがかかったようですね。
当方でも動作確認しました。

かえでIMEで日本語音声入力ができました。

androkun

unread,
Dec 9, 2009, 10:34:29 AM12/9/09
to Android-SDK-Japan
RecognizerIntentへのパラメータをいろいろ試して見ましたが、どうやら未実装の気がします。
特に、RecognizerIntent.EXTRA_MAX_RESULTSで他の認識候補が得られないのは、実用上問題があるので、
Googleさん頑張ってください。

個人的な推測ですが、言語モデルを検索向けに合わせていると思われるので、音声をコマンド入力として利用するには
不向きな気がしています。

Goolgeの本業を考えると、仕方がないかと思いますが、残念です。


On 12月8日, 午前1:19, "i...@pc-craft.co.jp" <pccraftc...@gmail.com> wrote:

飯塚康至

unread,
Dec 9, 2009, 7:29:21 PM12/9/09
to android-...@googlegroups.com
お世話になります。飯塚です。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
Spinner fromSpinner = (Spinner) findViewById(R.id.fromSpinner);
String fromKey = spinnerKeyStrings[fromSpinner.getSelectedItemPosition()];
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, fromKey);

で、試してみたのですが、常に日本語の認識になってしまうようです。

fromKeyには
private static String[] spinnerKeyStrings =
(String[])Language.validLanguages.toArray();
が入っていますので、jp,en,fr等が入っています。

端末のローカルな言語を見ているのかも知れません。

2009/12/9 in...@pc-craft.co.jp <pccra...@gmail.com>:
--
以上、宜しくお願いします。

-------------------------------------------------------------------------------
【みんなの研究生活 P-Lab(1.0)】http://www.acl-inc.co.jp/p-lab
株式会社エイシーエル
飯塚 康至(明星大学非常勤講師・情報システム学会)
ブログ:http://d.hatena.ne.jp/YasushiIizuka/
Twitter:@yasushiiizuka
TEL:03-5308-1141
FAX:03-5308-1142
-------------------------------------------------------------------------------

Koike Kazuhiko

unread,
Dec 10, 2009, 4:44:00 PM12/10/09
to android-...@googlegroups.com
音声入力、面白いですね。

耳が聴こえない父とのコミュニケーションに使えないかと思い、簡単なアプリを
作って少し試してみました。

言葉を正しく認識させるのはなかなか難しい、というのが第一の印象です。例え
ば「今日は雨が降るようです」という文は何度やっても正しく認識させることが
できません。とくに「きょうわ」を「きょうは」と認識させるのが無理みたいです。

認識率を上げようとして単語を区切りながら話すと、区切りではなく会話の終了
と判断されて「お話しください」のダイアログが閉じてしまうのも困ります。無
音が何秒つづくと会話終了と判断するか、設定変更できるようにしてほしいで
す。あるいは、ユーザーが「会話終了」ボタンを押すまで待ってくれるとか。
--
小池和彦(Koike Kazuhiko)

Edward Moskal

unread,
Dec 11, 2009, 11:22:09 PM12/11/09
to Android-SDK-Japan
API Demo のVoice Recognitionで遊んでいるのですが、
言語はすべて日本語で理解されてしまいます。

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,
Locale.ENGLISH.toString());
という文をたして
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,
Locale.ENGLISH.toString());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speech
recognition demo");
startActivityForResult(intent,
VOICE_RECOGNITION_REQUEST_CODE);
としたのですが、いまだ日本語で解釈されてしまいます。
携帯の言語が日本語に設定されていてもこのAPI DemoのVoice Recognitionだけ英語で解釈してくれるように変更したいのです
が、
誰か試された方はおられるでしょうか?
この設定に関してご教授いただければ幸いです。
よろしくお願いします。

androkun

unread,
Dec 12, 2009, 3:07:27 AM12/12/09
to Android-SDK-Japan
上記に記載していますが、付属のパラメータは無効のようです、

飯塚康至

unread,
Dec 12, 2009, 3:12:42 AM12/12/09
to android-...@googlegroups.com
こんにちは、飯塚です。

マーケットに全ての地域/言語というアプリが公開されていまして、
これを使って端末の言語をかえると変わります。
なので、まだ試していませんがプログラム的に端末の言語をいったんかえるなどの処理が必要かと思います。


2009/12/12 Edward Moskal <hiron...@gmail.com>:
> --
>
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja からこのグループにアクセスしてください。
Reply all
Reply to author
Forward
0 new messages