Я пытаюсь удалить автоматические паузы, добавленные процессором синтеза, чтобы создавать речевые файлы без каких-либо лингвистических пауз.
Я использую механизм синтеза речи Microsoft с классом SpeechSynthesizer
в C #.
Это результат, который я получаю. Это пример того, почему происходят автоматические разрывы? завернутые в <speak>
теги с SpeechSynthesizer
:
Это результат, который я хочу (полученный с помощью демонстрации TTS Oddcast):
Я несколько раз прочитал документацию по SSML для w3.org, что в пункте 3.2.3 - break element, обратите внимание на следующее:
If the element is not present between tokens, the synthesis processor is expected to automatically determine a break based on the linguistic context. In practice, the break element is most often used to override the typical automatic behavior of a synthesis processor.
Вот как сейчас ведет себя мой голос. Я хочу как-то переопределить / отключить эту функцию, чтобы речь была полностью непрерывной. Я попытался поместить элемент <break>
с атрибутами strength="none"
и time="0ms"
между словами, в которых происходит этот автоматический разрыв, как они написали выше, чтобы переопределить его, и всевозможными разными вещами, такими как перенос всей текстовой строки в теги <s>
и т. Д., Но безрезультатно.
Я также не могу просто убрать паузы в постобработке, так как голос имеет другой тон при произнесенных словах, когда добавляются автоматические паузы.
Я прочитал несколько разных документов SSML, которые, хотя часто формулируются немного иначе, чем документы w3, не объясняют, как конкретно переопределить автоматические перерывы, что является моей проблемой.