#windows #text-to-speech #sapi
Вопрос:
У меня есть Windows 7 с несколькими голосами Ivona (harposoftware.com) установлен. У меня есть приложение, которое запускает SpVoice из Sapi и заставляет его читать текст. Теперь у меня также есть фрагмент текста, который я хотел бы превратить в диалог между несколькими голосами.
Раньше, чтобы переключаться между голосами, моему приложению приходилось разрезать текст на фразы и произносить каждую фразу индивидуально, выбирая для нее нужный голос.
Мне было интересно, есть ли лучшее решение.
Итак, можно ли встроить некоторые теги SSML в мой текст, чтобы включить переключение между голосами на лету?
Ответ №1:
Вы должны иметь возможность использовать этот <voice>
элемент для изменения голосов в SAPI 5.3.
Убедитесь, что для вызова функции Speak() установлен SPF_PARSE_SSML
флаг.
Обратите внимание, что атрибут name в <voice>
теге зависит от процессора и не может содержать встроенных пробелов. (например, <voice required="Name=Microsoft Mark">
определенно не будет делать то, что вы ожидаете.)
Это описано в спецификации W3C, но это легко пропустить.
В этом документе есть гораздо лучшее описание того, как работает голосовая метка, от Claro Software.