SSML 및 .NET SpeechSynthesizer (System.Speech.Synthesis)를 통해 음성 텍스트의 피치를 변경하려고합니다.SpeechSynthesizer .NET 컨트롤 피치
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
PromptBuilder builder = new PromptBuilder();
builder.AppendSsml(@"C:\Users\me\Documents\ssml1.xml");
synthesizer.Speak(builder);
ssml1.xml 파일의 내용은 다음과 같습니다.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ssml:speak version="1.0"
xmlns:ssml="http://www.w3.org/2001/10/synthesis"
xml:lang="en-US">
<ssml:sentence>
Your order for <ssml:prosody pitch="+30%" rate="-90%" >8 books</ssml:prosody>
will be shipped tomorrow.
</ssml:sentence>
</ssml:speak>
비율은 인식됩니다 : "8 권의 책"은 나머지보다 훨씬 느리게 말하지만 "피치"에 어떤 값을 설정했는지에 상관없이 아무런 차이가 없습니다! 허용되는 값은 다음에서 찾을 수 있습니다.
http://www.w3.org/TR/speech-synthesis/#S3.2.4
Microsoft 음성 엔진에서 지원하지 않는 피치 또는 뭔가가 누락 되었습니까?
fritz
내가 .NET을 사용하는 피치 명령을 처리 할 수있는 다른 음성 엔진의 API가 있는지 궁금의
? – fritz
@fritz : .NET API가 많지 않습니다. 많은 원시 API가 있지만 그 중 많은 수가 "무료"는 아닙니다. 나는 ** eSpeak ** (.NET이 아니라)를 성공과 함께 사용했다 - System.Speech보다는 더 나은 결과물이지만 SSML을 잘 읽지는 못했다. –
.NET 음성 또는 다른 대안으로 노래하는 방법이 있습니까? 나는 컨트롤의 세 가지 기능을 지원하는 API를 찾고 있는데요. 1) Speech 2) 정확한 안정된 피치 3) Duration 컨트롤. 그런 것이 있습니까? 음악적으로 주도적 인 API를 선호합니다. – Shimmy