Im Allgemeinen bin ich sehr beeindruckt von der Standard-Text-to-Speech-Engine von Android (d. h. com.svox.pico). Wie erwartet, spricht sie einige Wörter falsch aus (genau wie ich) und benötigt daher gelegentlich eine Aussprachehilfe. Ich frage mich also, wie man die Wörter, die die pico TTS-Engine falsch ausspricht, am besten phonetisch buchstabiert.
Die korrekte Aussprache des Vogels Chachalaca ist zum Beispiel CHAH-chah-LAH-kah. Dies ist das Ergebnis der TTS-Engine:
mTts.speak("Chachalaca", TextToSpeech.QUEUE_ADD, null); // output: chuh-KAL-uh-KUH
mTts.speak("CHAH-chah-LAH-kah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-EL-AY-AYCH-dash-kuh
mTts.speak("CHAHchahLAHkah", TextToSpeech.QUEUE_ADD, null); // output: CHA-chah-LAH-ka
mTts.speak("CHAH chah LOCKah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-LAH-kah
Hier sind meine Fragen.
**
- Gibt es eine standardmäßige phonetische Schreibweise, die von der Android-TTS-Engine erkannt wird?
- Wenn nicht, gibt es einige allgemeine Regeln für die Erstellung von benutzerdefinierten Ausspracheschreibweisen, die es wahrscheinlicher machen, dass die Schreibweisen in zukünftigen TTS-Engines/Versionen korrekt sind?
- Es scheint, dass die Android-TTS-Engine die Groß- und Kleinschreibung ignoriert. Wie kann man die Betonung am besten festlegen?
**
Das ist übrigens das, was die TTS-Engine in logcat schreibt:
V/TtsService( 294): TTS-Verarbeitung: CHAH chah LOCKah
V/TtsService( 294): TtsService.setLanguage(eng, USA, )
I/SVOX Pico Engine( 294): Sprache bereits geladen (en-US == en-US)
I/SynthProxy( 294): Einstellung der Sprechgeschwindigkeit auf 100
I/SynthProxy( 294): Tonhöhe auf 100 setzen
[UPDATE]
Ich habe versucht, ein XML-Dokument wie folgt an TextToSpeech.speak() zu übergeben:
String text = "<?xml version=\"1.0\"?>" +
"<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " +
"http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " +
"xml:lang=\"en-US\">" +
"That is a big car! " +
"That <emphasis>is</emphasis> a big car! " +
"That is a <emphasis>big</emphasis> car! " +
"That is a huge bank account! " +
"That <emphasis level=\"strong\">is</emphasis> a huge bank account! " +
"That is a <emphasis level=\"strong\">huge</emphasis> bank account!" +
"</speak>";
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);
Wie von Android Eve vorgeschlagen, las die TTS-Engine nur den XML-Körper (d. h. die Kommentare über das große Auto und das riesige Bankkonto). Ich wusste nicht, dass die TTS-Engine in der Lage ist, XML-Dokumente zu parsen. Ich habe jedoch keine Betonung in der TTS-Ausgabe gehört.
[UPDATE 2]
Ich habe die Frage dahingehend vereinfacht, ob Android TTS die Speech Synthesis Markup Language unterstützt oder nicht aquí .