Tôi đang cố gắng để thay đổi độ cao của văn bản nói qua SSML và .NET SpeechSynthesizer (System.Speech.Synthesis)SpeechSynthesizer NET kiểm soát sân
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
PromptBuilder builder = new PromptBuilder();
builder.AppendSsml(@"C:\Users\me\Documents\ssml1.xml");
synthesizer.Speak(builder);
Nội dung của tập tin ssml1.xml là:
<?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>
tỷ lệ được công nhận: "8 cuốn sách" được speaken chậm hơn nhiều so với phần còn lại, nhưng không có vấn đề gì giá trị được đặt cho "sân", nó làm cho không có sự khác biệt! giá trị được phép có thể được tìm thấy ở đây:
http://www.w3.org/TR/speech-synthesis/#S3.2.4
Am tôi thiếu một cái gì đó hoặc đang thay đổi pitch chỉ không được hỗ trợ bởi các công cụ Microsoft Speech là gì?
Fritz
Tôi tự hỏi nếu có bất kỳ lời nói động cơ api khác có thể được sử dụng với .net và đó sẽ xử lý lệnh sân? – fritz
@fritz: không có nhiều API .NET. Có nhiều API gốc, tuy nhiên, nhiều API không phải là "miễn phí". Tôi đã sử dụng ** eSpeak ** (không .NET) với thành công - đầu ra tốt hơn so với 'System.Speech' nhưng nó không đọc SSML tốt. –
Có cách nào để hát với bài phát biểu .NET hay bất kỳ phương án nào khác không? Tôi đang tìm một API hỗ trợ ba tính năng điều khiển: 1) Bài phát biểu 2) Độ ổn định chính xác cao 3) Kiểm soát thời lượng. Có một điều như vậy? Tôi rõ ràng thích một API hướng âm nhạc hơn. – Shimmy