どのようにデータを読むことができますか?つまり、簡単なテキスト文字列をAndroidの音声(音声)に変換できますか?Androidのスピーチ - どのようにAndroidでテキストを読むことができますか?
TextToVoice speaker = new TextToVoice();
speaker.Speak("Hello World");
どのようにデータを読むことができますか?つまり、簡単なテキスト文字列をAndroidの音声(音声)に変換できますか?Androidのスピーチ - どのようにAndroidでテキストを読むことができますか?
TextToVoice speaker = new TextToVoice();
speaker.Speak("Hello World");
Here you go。 A tutorial on using the library大きな欠点は、音声を保存するためにSDカードが必要だということです。
サードパーティのテキストを音声に変換するエンジンがあります
は、私がこのような何かを行うことができますがAPIです。 Donutには、Androidの将来のバージョンで利用できることを示唆するテキスト読み上げエンジンが含まれているという噂があります。しかしそれを超えて、テキスト読み上げのためのAndroidには何も組み込まれていません。
これはもはや当てはまります.1.6があるため、 – gregm
ドーナツはこれを持っています:android.speech.ttsパッケージをご覧ください。
TTSの使用は少し複雑ですが、必要なAPIを提供するラッパーを作成するのは簡単です。
正常に動作するには、克服する必要があるいくつかの問題があります。
彼らは次のとおりです。必ずUtteranceId(または他のOnUtteranceCompletedが と呼ばれることはありません )を設定
public class TextSpeakerDemo implements OnInitListener
{
private TextToSpeech tts;
private Activity activity;
private static HashMap DUMMY_PARAMS = new HashMap();
static
{
DUMMY_PARAMS.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "theUtId");
}
private ReentrantLock waitForInitLock = new ReentrantLock();
public TextSpeakerDemo(Activity parentActivity)
{
activity = parentActivity;
tts = new TextToSpeech(activity, this);
//don't do speak until initing
waitForInitLock.lock();
}
public void onInit(int version)
{ //unlock it so that speech will happen
waitForInitLock.unlock();
}
public void say(WhatToSay say)
{
say(say.toString());
}
public void say(String say)
{
tts.speak(say, TextToSpeech.QUEUE_FLUSH, null);
}
public void say(String say, OnUtteranceCompletedListener whenTextDone)
{
if (waitForInitLock.isLocked())
{
try
{
waitForInitLock.tryLock(180, TimeUnit.SECONDS);
}
catch (InterruptedException e)
{
Log.e("speaker", "interruped");
}
//unlock it here so that it is never locked again
waitForInitLock.unlock();
}
int result = tts.setOnUtteranceCompletedListener(whenTextDone);
if (result == TextToSpeech.ERROR)
{
Log.e("speaker", "failed to add utterance listener");
}
//note: here pass in the dummy params so onUtteranceCompleted gets called
tts.speak(say, TextToSpeech.QUEUE_FLUSH, DUMMY_PARAMS);
}
/**
* make sure to call this at the end
*/
public void done()
{
tts.shutdown();
}
}
ttsの使い方の良い例です。 「Pro Android 2ブック」に記載されています。第15章のソースコードを見てください。
ほとんどのデバイスではSDカードは必要ありません – gregm