2010-08-19 5 views
7

다음 SSML (Speech Synthesis Markup Language) 문서를 com.svox.pico TextToSpeech 엔진에 전달하면 XML 본문을 읽었지만 음소 또는 강조 요소는 제어 할 수 없습니다. 이 결과 (명백한 SSML 제어) 넥서스에 동일한 하나 로이드 2.2뿐만 아니라에 SDK 레벨 함께 AVD 실행 에뮬레이터를 실행하는 제Android TTS는 음성 합성 마크 업 언어를 지원합니까?

  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\">" + 

        "tomato " + 
        "<phoneme alphabet=\"ipa\" ph=\"t&amp;#x259;mei&amp;#x325;&amp;#x27E;ou&amp;#x325;\"> tomato </phoneme> " + 

        "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); 

하는가 SSML 중 어느 안드로이드 TTS 엔진 지원 집단?

답변

1

답변은 '일종의'것으로 보입니다. 모든 SSML 태그가 아직 지원되지는 않지만 <phoneme> 태그 사용에 대한 일부 테스트 예제는 https://android.googlesource.com/platform/external/svox/+/89292811b7fe82e5c14fa13942779763627e26db

입니다. 테스트 예제가 원하는 음성 출력을 생성하지만 logcat에도 XML 구문 분석기 오류 메시지가 생성됩니다. Android 문제 추적기 (11010 번 문제)에서 이러한 잘못된 오류 메시지에 대한 문제를 열었습니다.

3

SSML을 실험 해본 결과, TTS 엔진이 입력을 자동으로 루트 <speak> 요소로 감싸는 것처럼 보입니다. 따라서 생략하면 파서 오류가 발생하지 않습니다.

예 :

String text = "Testing <phoneme alphabet=\"xsampa\" ph=\"&#34;{[email protected]`\"/>."; 
mTts.speak(text, TextToSpeech.QUEUE_ADD, null);