Добавление акцентов к генерации речи - PullRequest
8 голосов
/ 15 марта 2012

Первая часть этого вопроса теперь является его собственной, здесь: Анализ текста на ударения

Вопрос: Как можно добавить акценты к сгенерированной речи?

То, что я придумал:

Я не имею в виду просто знаки акцента, или перегибы, или что-нибудь подобное.Я имею в виду что-то вроде полного британского акцента, или шотландский акцент, или русский, и т. Д.

Я бы подумал, что это можно сделать и за пределами языка. Пример : что-то на русском языке может быть создано с британским акцентом, или что-то на мандаринском языке может иметь русский акцент.

Я думаю, что основной процесс будет следующим:

  1. Анализ текста
    • Сравните с базой данных (или что-то в этом роде), чтобы определить, какой акцент требуется, насколько он должен быть и т. Д.
  2. Создатьречь на указанном языке
    • Легко с обычными текстовыми процессорами.
  3. Определите указанный акцент на основе проанализированного текста.
    • Это рассматриваемая часть.
    • Я думаю, что для следующего шага лучше всего подойдет массив амплитуд и фильтров.
  4. Сетка речи иакцент.
    • Это будет самая легкая часть.
    • Возможно, это можно сделать, умножив речь на ударение, как это делают многие другие методы DSP.

Это на самом деле больше общий вопрос о DSP, но я хотел бы придумать программный алгоритм, чтобы сделать это вместо общей идеи.

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

Этот вопрос сам по себе не является "программированием": это лингвистика.Программирование сравнительно просто.Для анализа это будет действительно сложно, и, по правде говоря, вам лучше попросить пользователя указать акцент;Или вы собираетесь использовать автоматическое устройство для чтения историй?

Тем не менее, основной акцент выполним с современной текстовой речью.Знаете ли вы о международном фонетическом алфавите?http://en.wikipedia.org/wiki/International_Phonetic_Alphabet В нем в основном перечислены все звуки, которые человеческий голос может издавать.Акцент - это просто отображение (функция) от алфавита к себе.Например, чтобы сделать американский акцент звучащим по-британски для американского человека (хотя этого недостаточно для того, чтобы он звучал по-британски для британца), вы можете разорвать все звуки «r» в середине слова.Так, например, альвеолярный трель будет заменен голосовым фрикативным языком.(Множество угловых кейсов для этой цели).

Длинно и коротко: это непросто, поэтому, вероятно, никто этого не сделал.Я уверен, что несколько преподавателей лингвистики скажут, что это невозможно.Но это то, что делают профессора лингвистики.Но вам в основном нужно прочитать несколько толстых учебников по акцентам и произношению, чтобы хоть как-то продвинуться в решении этой проблемы.Удачи!

2 голосов
/ 24 марта 2012

Что такое акцент?

Акцент не является звуковым фильтром;это образец акустической реализации текста на языке.Вы не можете взять запись американского английского, пропустить ее через «массив амплитуд и фильтров» и получить британский английский.DSP полезен для реализации просодии , а не акцента.

В основном (и проще всего моделировать) акцент состоит из правил фонетической реализации последовательности фонем.На восприятие акцента дополнительно влияет просодия и то, какие фонемы выбирает говорящий при чтении текста.

Генерация речи

Процесс генерации речи состоит из двух основных этапов:

  1. Текст в фонемы: преобразуйте письменный текст в последовательность фонем (плюс супрасегменталы, такие как стресс, и просодическую информацию, например границы высказываний).Это в некоторой степени зависит от акцента (например, выходной сигнал «лаборатории» различается для говорящих на американском и британском языках).

  2. Фонема в речь: учитывая последовательность фонем, генерируйте звук в соответствии справила диалекта для фонетических реализаций фонем.(Обычно вы комбинируете дифоны и затем акустически корректируете просодию).Это сильно зависит от акцента, и именно этот шаг придает главное качество акцента.Определенная фонема, даже если она разделена между двумя акцентами, может иметь поразительно различную акустическую реализацию.

Обычно они являются парными.Хотя вы могли бы иметь генератор речи с британским акцентом, который использует американское произношение, это звучало бы странно.

Создание речи с заданным акцентом

Запись текста наРечевая программа - это огромный объем работы (в частности, чтобы реализовать одну общую схему, вы должны записать носитель языка, говорящий на каждом возможном дифоне на языке), поэтому вам лучше использовать существующий.

Короче говоря, если вы хотите использовать британский акцент, используйте движок text-to -meme на британском английском языке вместе с движком фонемы к речи на британском английском языке.

Для общих акцентов, таких как американский и британский английский, StandardMandarin, Metropolitan French и т. Д., Будет несколько вариантов, в том числе с открытым исходным кодом, которые вы сможете изменить (как показано ниже).Например, посмотрите на FreeTTS и eSpeak .Для менее распространенных акцентов существующие движки, к сожалению, могут не существовать.

Произносить текст с иностранным акцентом

Английский с иностранным акцентом социально не очень престижно, поэтому полные системы, вероятно, нене существует.

Одной из стратегий было бы объединение стандартного механизма преобразования текста в фонему для родного акцента с механизмом преобразования фонемы в речь для иностранного языка.Например, носитель русского языка, который выучил английский в США, правдоподобно использовал бы американское произношение таких слов, как лаборатория , и сопоставил бы его фонемы с родными русскими фонемами, произнося их как на русском языке.(Я считаю, что есть веб-сайт, который делает это для английского и японского, но у меня нет ссылки.)

Проблема в том, что результат слишком экстремальный.Настоящий изучающий английский будет пытаться распознавать и генерировать фонемы, которые не существуют на его родном языке, а также изменять свою реализацию своих родных фонем, чтобы приблизиться к родному произношению.Степень совпадения результатов с носителем языка, конечно, различна, но использование чистых иностранных экстремальных звуков смешно (и в основном непостижимо).

Таким образом, для создания правдоподобного американского-английского-с-русским акцентом (например), вам нужно написать механизм text-to-phoneme.В качестве отправной точки вы можете использовать существующие движки text-to -meme для американского английского и русского языков.Если вы не желаете найти и записать такого громкоговорителя, вы все равно можете получить приличное приближение, используя DSP для объединения сэмплов из этих двух движков.Для eSpeak он использует формантный синтез, а не записанные сэмплы, поэтому может быть проще объединить информацию из нескольких языков.

Еще одна вещь, которую следует учитывать, - это то, что иностранные носители часто изменяют последовательность фонем под влиянием фонотаксикиих родной язык, обычно путем упрощения групп согласных, вставления эпентетических гласных, или дифтонгирования или прерывания последовательностей гласных.

Есть некоторая литература по этой теме.

...