【发布时间】:2015-04-07 19:51:27
【问题描述】:
我有一个使用 Android TTS API 将文本转录为音频的类。我可以控制俯仰和速度;但我注意到引擎需要一个文本字符串和一个哈希对象。我注意到有些单词发音太快以至于不容易识别,并且变形似乎太不自然。有没有办法控制这两件事?可能通过HashMap?以下是我使用引擎的方式:
mTts = new TextToSpeech(Globals.context, this); // context, listener
}
@Override
public void onInit(int status) {
HashMap<String, String> myHashRender = new HashMap();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, speech);
mTts.setPitch(0.8f);
mTts.setSpeechRate(0.6f);
mTts.synthesizeToFile(speech, myHashRender, fileOutPath);
while (mTts.isSpeaking()) try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
mTts.stop();
mTts.shutdown();
【问题讨论】:
-
Google TTS 目前不支持变化的变形,也不支持SSML 中定义的内联韵律标签。其他 TTS 引擎可能支持这些功能,但我不知道。
-
那为什么这个方法需要一个hashmap和一个字符串呢?
-
您可以设置一些参数,但没有一个参数可以控制变形或逐字韵律。
-
@alanv 你认为你可以把它作为答案吗?