More Related Content
Similar to Androidの音声認識とテキスト読み上げ機能について (20)
Androidの音声認識とテキスト読み上げ機能について
- 7. Android iPhone
Android iPhone
API
Android
- 10. Google API
( )
Android API
- 12. Google API (TTS:Text-To-Speech
Android API
- 21. Intent
//
recognitionButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(
RecognizerIntent.EXTRA_PROMPT,
getText(R.string.dialog_recognition));
startActivityForResult(intent, REQUEST_CODE);
} catch (ActivityNotFoundException e) {
}
}
});
- 22. Intent
//
recognitionButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
try {
Intent intent = new Intent(
RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(
RecognizerIntent.EXTRA_PROMPT,
getText(R.string.dialog_recognition));
LANGUAGE_MODEL_WEB_SEARCH
startActivityForResult(intent, REQUEST_CODE);
Web
} catch (ActivityNotFoundException e) {
} LANGUAGE_MODEL_FREE_FORM
}
});
- 23. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String resultsString = "";
//
ArrayList<String> results = data.getStringArrayListExtra(
RecognizerIntent.EXTRA_RESULTS);
for (int i = 0; i< results.size(); i++) {
resultsString += results.get(i);
}
this.searchText.setText(resultsString);
}
super.onActivityResult(requestCode, resultCode, data);
}
- 24. •
→ API Google
3G Wifi
→Google →Activity
→ → Android
→
- 25. •
→
※ RecognizerIntent.EXTRA_LANGUAGE
- 26. • mp3 API
→
• Google API
→ ML
- 27. Text-To-Speech API
(android.speech.tts.TextToSpeech)
android.intent.action.START_TTS_SERVICE
Activity
- 28. TTS
//TTS
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
if(tts.isLanguageAvailable(Locale.US) == TextToSpeech.LANG_MISSING_DATA){
new AlertDialog.Builder(this).setTitle("warning").setMessage("tts(us)
not supprted").show();
}else{
tts.setLanguage(Locale.US);
tts.setPitch(1.8f);
tts.setSpeechRate(0.8f);
}
}else{
new AlertDialog.Builder(this).setTitle("error").setMessage("tts#onInit
error").show();
finish();
}
}
- 29. TTS
//TTS
@Override
public void onInit(int status) {
if(status == TextToSpeech.SUCCESS){
if(tts.isLanguageAvailable(Locale.US) == TextToSpeech.LANG_MISSING_DATA){
new AlertDialog.Builder(this).setTitle("warning").setMessage("tts(us)
not supprted").show();
}else{
tts.setLanguage(Locale.US);
tts.setPitch(1.8f);
tts.setSpeechRate(0.8f);
}
}else{
new AlertDialog.Builder(this).setTitle("error").setMessage("tts#onInit
error").show();
finish();
}
}
- 30. SearchResult result = currentResult.get(position);
if(tts.isSpeaking()){
tts.stop();
}
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM,String.valueOf
(AudioManager.STREAM_MUSIC));
tts.speak(result.getChn(), TextToSpeech.QUEUE_FLUSH, params);
※
※
(tts.isSpeaking()
- 31. SearchResult result = currentResult.get(position);
if(tts.isSpeaking()){
tts.stop();
}
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_STREAM,String.valueOf
(AudioManager.STREAM_MUSIC));
tts.speak(result.getChn(), TextToSpeech.QUEUE_FLUSH, params);
STREAM_ALARM
※
STREAM_MUSIC
※ STREAM_NOTIFICATION
(tts.isSpeaking()
- 32. Text-To-Speech
API
http://eyes-free.googlecode.com/
eSpeak
TTS PICO
Google TTS 20
C
- 33. Text-To-Speech API
http://gimite.net/pukiwiki/index.php?Android%20JaTTS
Android
mp3
Galatea Talk
http://hil.t.u-tokyo.ac.jp/~galatea/index-jp.html