Синтез речи или Text-to-Speech (TTS) — технология преобразования текста в речь. Это компьютерное моделирование человеческой речи из текстового представления при помощи методов машинного обучения и нейронных сетей. Благодаря синтезу речи можно прочитать любой текст голосом, максимально похожим на естественный. Чтобы сделать синтезированную речь натуральной, необходимо отточить ее тембр, плавность звучания, расстановку ударений и пауз, интонацию и другие области.
На данный момент самыми успешными примерами решения данной задачи, являются методы основанные на использовании нейронных сетей. До популяризации глубокого обучения использовались следующие подходы:
Параметрический - этот метод синтез основан на использовании так называемых скрытых Марковских моделях (HMM-based). Скрытая марковская модель (HMM) - это статистическая марковская модель, в которой моделируемая система считается марковским процессом - назовем его X - с невидимыми («скрытыми») состояниями. HMM предполагает, что существует другой процесс Y, поведение которого «зависит» от X. Цель состоит в том, чтобы узнать о X, наблюдая за Y. В звуковых системах частотный спектр, несущая частота и продолжительность речи моделируются одновременно с помощью HMM. Речевые сигналы генерируются из самих HMM на основе критерия максимального правдоподобия. Преимущество этого подхода - возможность изменять параметры голоса, регулируя переменные функции модели Маркова. Из недостатков, стоит отметить, что синтезируемая речь звучит менее естественно, чем при конкатенативном подходе.
Параметрический синтез состоит из следующих этапов:
- Сначала из текста извлекаются лингвистические признаки, например, фонемы, продолжительность и т.д.
- Затем для вокодера (системы, генерирующей wave-формы) извлекаются признаки, которые представляют соответствующий речевой сигнал: кепстр, частота, линейная спектрограмма, мел-спектрограмма.
- Эти, настроенные вручную, параметры наряду с лингвистическими особенностями передаются в модель вокодера, а тот выполняет множество сложных преобразований для генерирования звуковой волны. При этом вокодер оценивает параметры речи, такие как фаза, просодия, интонация и другие.
Если мы можем аппроксимировать параметры, которые определяют речь на каждой ее единице, тогда мы сможем создать параметрическую модель. Параметрический синтез требует значительно меньше данных и рутинной работы, нежели конкатенативные системы.
Теоретически всё просто, но на практике возникает множество артефактов, приводящих к нереалистичной речи.
Дело в том, что на каждом этапе синтеза мы вручную, жестко кодируем некоторые признаки и надеемся получить реалистично звучащую речь. Но выбранные данные базируются на нашем понимании речи, а ведь человеческое знание не абсолютно, поэтому взятые признаки не обязательно будут лучшим возможным решением.
Здесь и раскрывается потенциал глубоких нейронных сетей. Глубокие нейронные сети являются мощным инструментом, который, теоретически, может аппроксимировать сколь угодно сложную функцию, т. е. привести некоторое пространство входных данных X в пространство выходных данных Y. В контексте TTS задачи это будут, соответственно, текст и аудио с речью.