Шрифт:
Интервал:
Закладка:
Потенциальный недостаток дифонного подхода заключается в том, что в середине гласных могут возникать разрывы, связанные с тем, что в двух примыкающих дифонах гласные могут быть слишком сильно видоизменены под воздействием коартикуляционных эффектов. Например, при произнесении первого согласного звука в слове wet, происходит округление губ (так называемая лабиализация), что приводит к изменению гласного звука, распространяющемуся куда дальше, чем середина фонемы.
Некоторое сглаживание на границах дифона минимизирует воспринимаемые на слух последствия фактических разрывов формант, но несовпадение половинок гласных не так уж просто компенсировать. Существуют и другие коартикуляционные проблемы, что придаёт синтезированной на основе дифонов речи некоторую неестественность, хотя она в целом вполне разборчива.
Первая дифонная система, разработанная Норманом Диксоном и Дэвидом Макси, была впервые продемонстрирована в 1967 г. на ICSCP. Авторы потратили много лет, чтобы методом проб и ошибок оптимизировать набор дифонов. Однако и этот проект не был доведён до конца — и, как у Мэттингли, не по техническим, а по деловым причинам.
В 1978 г. Осаму Фуджимура и Джули Лавинс предложили в качестве альтернативы дифонам использование полуслогов [demisyllables]. Правила разбиения слогов, предложенные авторами, позволили обойтись для английского языка примерно тысячей полуслогов. Преимущество полуслогов заключается в том, что кластеры согласных внутри слогов, в большой степени подверженные эффектам коартикуляции, становятся отдельными единицами при синтезе. Однако данный подход не позволяет эффективно решить проблему межслоговой коартикуляции. Первая программа, основанная на этом подходе, была продемонстрирована Кэтрин Браумен в 1980 г.[2368]
Помимо дифонов и полуслогов, предлагались и другие схемы фонетической сегментации, что привело в итоге к появлению конкатенативных систем с динамическим выбором сегментов. Как правило, деление на сегменты выполняется с использованием специально модифицированных для этой цели систем распознавания речи, работающих в режиме «принудительного выравнивания» [forced alignment] (в котором для каждой фонемы определяется точное время её начала и окончания), с последующей ручной коррекцией полученных результатов. Полученные сегменты помещаются в базу данных вместе с их параметрами (величина F0, длительность) и данными о контексте (положение в слоге, соседние фонемы и т. п.). Во время синтеза система, основываясь на текущем контексте, выбирает из базы наиболее подходящие сегменты (для этого используется модель-классификатор) с тем, чтобы выстроить наилучшую их цепочку.
Именно этот метод, получивший название «метод выбора элементов» [unit selection], в середине 2010-х гг. был наиболее популярным для синтеза речи на европейских языках. Он обеспечивал наилучшее качество синтетической речи, хотя в массовых тестах заметно уступал предзаписанным образцам реальной человеческой речи. Поэтому довольно широкое распространение получили также специализированные системы синтеза, предназначенные для тех или иных узкоспецифических задач. Например, если вам нужно продиктовать человеку набор цифр, то можно просто использовать предзаписанные названия цифр, нормализованные по темпу, громкости и фундаментальной частоте (F0). Конечно, интонации такой системы будут не слишком естественными, однако результат будет разборчивым и в произношении не будет дефектов. Можно также использовать предзаписанные названия аэропортов и железнодорожных станций для систем синтеза речи, используемых на транспорте. Диалоговые системы, работающие по несложным сценариям, могут быть полностью выстроены на предзаписанных образцах реплик. В целом создатели прикладных голосовых систем хорошо выучили один из главных законов инженерного искусства: не следует забивать гвозди микроскопом, особенно если под руками есть молоток.
6.4.5 Развитие параметрического синтеза речи
Впрочем, системы параметрического синтеза также не стояли на месте. В середине 2010-х гг. их наиболее продвинутой версией стали системы статистического параметрического синтеза (Statistic Parametric Speech Synthesis, SPSS), основанные на скрытых марковских моделях (Hidden Markov Models, HMM).
Сам метод SPSS был предложен в работе[2369] Такаёси Ёсимуры, увидевшей свет в 1999 г., и впоследствии подвергнут ряду доработок и усовершенствований в работах других исследователей. Идея заключается в том, что речь может быть представлена в виде фрагментов, каждый из которых описывается следующим набором параметров: длительность, величина F0, а также набор мел-кепстральных коэффициентов, описывающих спектральные характеристики голоса (форманты, помимо F0). Используя эти параметры, можно сгенерировать последовательность амплитуд звукового сигнала. Собственно, алгоритм, преобразующий звуковой сигнал в подобный набор параметров, а затем способный восстановить из них сигнал, близкий по форме к исходному, называется, как вы уже, наверное, догадались, вокодером. Ёсимура и его коллеги использовали в качестве вокодера алгоритм под названием MLSA (Mel Log Spectrum Approximation, Мел-логспектральная аппроксимация)[2370]. Существенно сократив за счёт применения вокодера число параметров, необходимых для описания звукового сигнала, Ёсимура с коллегами использовали комбинацию деревьев решений и скрытой марковской модели для того, чтобы предсказывать изменение этих параметров во времени в зависимости от последовательности фонем, поступающих на вход модели.
Здесь самое время сделать небольшое отступление и рассказать об этих моделях.
Дерево решений — это одна из простейших моделей, используемых в машинном обучении. В таком дереве каждый узел, кроме терминальных, представляет собой некоторое условие, а терминальные узлы содержат решение модели. Чтобы узнать решение модели для некоторого прецедента, мы начинаем свой путь из корня дерева, а затем, в зависимости от того, соблюдается или нет записанное в текущем узле условие, перемещаемся на уровень ниже — в левое или правое поддерево. Дойдя таким образом до терминального узла, мы выбираем из него ответ модели.
Рис. 139. Пример дерева решений
С марковскими моделями дело обстоит несколько сложнее. Для начала представим себе некоторый случайный процесс, то есть некоторый набор пронумерованных случайных величин. Например, процесс последовательного подбрасывания игрового кубика можно рассматривать как случайный: каждый бросок приводит к выпадению некоторого числа (случайной величины), при этом все броски можно пронумеровать (первый бросок, второй бросок и т. д.). Напомним, что закономерность, описывающая область возможных значений случайной величины и вероятности появления этих значений, называется распределением вероятностей случайной величины. Для идеального и честного (не шулерского)