Android TTS(文本到语音)不';I don’我一个字母的发音都不正确
我试图在我的活动中实现Android的文本到语音技术。这是一个简单的文字游戏,我希望TTS引擎在用户按下某个按钮时拼写一个字母。例如,当用户按下A按钮时,我想听到“A” 问题是Android TTS(文本到语音)不';I don’我一个字母的发音都不正确,android,text-to-speech,Android,Text To Speech,我试图在我的活动中实现Android的文本到语音技术。这是一个简单的文字游戏,我希望TTS引擎在用户按下某个按钮时拼写一个字母。例如,当用户按下A按钮时,我想听到“A” 问题是.speak方法只接受字符串作为输入。所以,当我告诉TTS引擎我只需要一个字母串时,声音不是字母的发音。有没有什么方法可以让它正确地发音单字母字符串 到目前为止,解决方案是将听起来像字母的单词用作字符串输入,例如“bee”代表B,“see”代表C等等。但是F,H等等呢 还有其他想法吗?经过大量实验,我找到了一个更好的解决方
.speak
方法只接受字符串作为输入。所以,当我告诉TTS引擎我只需要一个字母串时,声音不是字母的发音。有没有什么方法可以让它正确地发音单字母字符串
到目前为止,解决方案是将听起来像字母的单词用作字符串输入,例如“bee”代表B,“see”代表C等等。但是F,H等等呢
还有其他想法吗?经过大量实验,我找到了一个更好的解决方案。为了让android tts引擎发出一封信,你必须用大写字母书写。例如“B”。这样它就能正确发音了!唯一的例外是“A”和“Z”,它们必须写为“ay”和“zet”
希望这有帮助我已经更新了一个测试TTS的旧项目,所以你说“是”的方式是这样的,但将逗号分隔以强制每个字母发音,我正在尝试你说的另一个选项(两者都包括在这里): 主要类别包括:
public class SpellUtil {
public static String convertToSpellOnce(String words) {
StringBuilder sb = new StringBuilder();
for (char letter : words.toCharArray()) {
sb.append(letter);
//sb.append(convertSoundBased(letter)); this is another option
sb.append(",");
}
return sb.toString();
}
private static String convertSoundBased(char letter) {
switch (letter) {
case 'a':
return "a";
case 'b':
return "bee";
case 'c':
return "cee";
case 'd':
return "dee";
case 'e':
return "e";
case 'f':
return "ef";
case 'g':
return "gee";
case 'h':
return "aitch";
case 'i':
return "i";
case 'j':
return "jay";
case 'k':
return "kay";
case 'l':
return "el";
case 'm':
return "em";
case 'n':
return "en";
case 'o':
return "o";
case 'p':
return "pee";
case 'q':
return "cue";
case 'r':
return "ar";
case 's':
return "ess";
case 't':
return "tee";
case 'u':
return "u";
case 'v':
return "vee";
case 'w':
return "double-u";
case 'x':
return "ex";
case 'y':
return "wy";
case 'z':
return "zed";
}
return "";
}
}
请在此处检查已完成的代码:
eff?艾奇?我认为你所做的可能是避免这种行为的唯一方法;在谷歌TTS引擎3.10.10版中,各个字母按预期以英语合成。在Motorolo Moto G上,运行KitKat 4.4.4,同时使用英国和美国语音,我发现我需要使用“Ae”(“ay”给出声音“I”)。