2011年06月20日

Androidアプリで音声認識→翻訳→読み上げの方法

このエントリーをはてなブックマークに追加
follow us in feedly



まず、Androidの音声認識を使うには、
<uses-permission android:name="android.permission.INTERNET" />

が必要です。

つまり、これは、オンラインでgoogleの音声認識APIを呼んでいるのです。
電波が入らない場所では使えないのです。


音声認識をするためには
どうも、このようにインテントを必ず作らなければならないようなのですが
Intent intent = new Intent( RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra( RecognizerIntent.EXTRA_PROMPT, "VoiceRecognition");

startActivityForResult(intent, REQUEST_CODE);


このインテントは音声認識すると終了しますので
その結果をこうやって得ます。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE ) {
String result = data.getStringExtra(RecognizerIntent.EXTRA_RESULTS);
}
super.onActivityResult(requestCode, resultCode, data);
}

必ず作らなければならないようなのですが
インテントを通さない音声認識の方法があるのでしょうか?

マイクの入力を常にチェックしておいて音声があったらインテントを立ち上げればよいでしょうか






こうして認識した言葉を翻訳して読み上げたいと思って....
(翻訳機能実装編)このjavascriptの結果を.....


ということをやらなくても、


javascriptでタイムラインを翻訳したり音声読み上げ

と、直に翻訳→読み上げをやったので
これをandroidで読ませれば....

<audio src="http://translate.google.com/translate_tts?q=文章" controls> 未サポート mp3 </audio>

このようにして再生できます。
translate_ttsの結果はmp3なのでandroidブラウザでも出力できます


アプリ内で新たにURLを開くには

Uri uri = Uri.parse( URL );
Intent in = new Intent(Intent.ACTION_VIEW,uri);
startActivity(in);

こうすることが一番簡単だと思います。











これをAndroidマーケットに出しました
Voice Recognition Translator





トラックバックURL

コメントする

名前:
URL:
  情報を記憶: 評価:  顔   星
 
 
 
サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村
adsense
Archives
amazon
blogchart
QRコード
QRコード
Recent Comments