Эта статья об управлении параметрами чтения чтекстов в Delphi функциями SpeechAPI.
Надеюсь, что вы прочитали первую часть SpeechAPI в Delphi и статью MSAgent и SpeechAPI, поэтому перейду непосредственно к способу управления параметрами чтения. Я опишу общий способ управления, а затем рассмотрим разницу управления параметрами речи при чтении методом Speak у MSAgent и чтением функциями API напрямую.
Теги
Как пишут в буржуйской офицальной документации к Microsoft Speech API: SAPI поддерживает изменения речевого вывода через специальные теги,вставляемые в читаемую текстовую строку. Эти теги помогают изменять параметры голосового движка для улучшения трансляции текста в речь. Поддерживает теги не только речевые движки, но и MSAgent. Теги — это основной способ управления голосовыми возможностями речевого синтезатора. Например: \spd=100\ — этот тег изменяет скорость речи на значение равное 100. Вот некоторые правила синтаксиса для речевых тегов:
-
Все теги начинаются и заканчиваются символом наклонной черты влево (\).
-
Отдельный бэкслэш не допускается в пределах тэга. Чтобы включить бэкслэш в текстовый параметр тэга, используйте двойную наклонную черту влево (\\).
-
Теги воспринимаются без учета регистра. Например, \Spd=100\ — тот же самый что и \SPD=100\.
-
Теги пробеловосприимчивы, то есть не допускают в себе лишних пробелов. Например, \Rst\ — не тот же самый что и \ Rst \
MSAgent поддерживает следующие теги: Chr, Ctx, Emp, Lst, Map, Mrk, Pau, Pit, Rst, Spd, Vol. При чтении через SAPI этот набор немного шире. Теги создавались для корректировки преобразования текста в речь, но некоторые из них изменяют стиль голоса, например на шепот. Поэтому одни из них имеют параметры, а у других они отсутствуют, как у тега \Emp\. А теперь подробнее про
каждый из них!