데이터를 읽는 방법, 즉 간단한 텍스트 문자열을 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가 있습니다. 소문에 의하면 도넛에는 TTS (텍스트 음성 변환) 엔진이 포함되어있어 향후 Android 버전에서 사용할 수 있다고합니다. 그 외에도, 텍스트 음성 변환을 위해 Android에는 아무 것도 내장되어 있지 않습니다.
1.6이 있기 때문에 이것은 더 이상 true가 아닙니다. – gregm
도넛은 이것을 가지고 있습니다 : android.speech.tts 패키지를보십시오.
TTS를 사용하는 것은 예상보다 조금 복잡하지만 원하는 API를 제공하는 래퍼를 작성하는 것은 쉽습니다.
제대로 작동하려면 여러 가지 문제가 있습니다.
그들은 다음과 같습니다
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();
}
}
좋은 사용 예는 다음과 같습니다. "프로 안드로이드 2 도서"에서 찾을 수 있습니다. 15 장의 소스 코드를 살펴보십시오.
대부분의 장치에서 SD 카드가 필요하지 않습니다. – gregm