1 of 13

Автоматический синтез речи. Компилятивный синтез

П. А. Холявин

p.kholyavin@spbu.ru

1

2 of 13

Типы единиц компилятивного синтеза

  1. Аллофоны
  2. Дифоны
  3. Субаллофоны
  4. Слоги
  5. Слова… (макросинтез)
  6. Unit Selection (селективный синтез)

2

3 of 13

Аллофонный синтез

Согласные:

L \ R

Неогубл. гласный

Огубл. гласный

Глухой согл.

Сонант или /v/

Звонкий согл.

Абс. начало

Гласный

Согл.

Сочетания согласных: /b/, /p/, /m/, /d/, /t/ + /n/, /n’/

3

4 of 13

Аллофонный синтез

Гласные – левые контексты:

/f/, /v/, /p/, /b/

/n’/

/f’/, /v’/, /p’/, /b’/

/l/

/t/, /d/, /s/, /z/, /t͡s/

/l’/

/t’/, /d’/, /s’/, /z’/, /t͡ʃ/, /ʃ’/, /r’/

/r/

/ʃ/, /ʒ/

/j/

/k/, /g/, /x/

/a/

/k’/, /g’/, /x’/

/o/

Абс. начало

/u/

/m/

/e/

/m’/

/i/

/n/

/ɨ/

4

5 of 13

Аллофонный синтез

Гласные – правые контексты:

/p/, /b/, /m/, /f/, /v/

/j/

/t/, /d/, /s/, /z/, /t͡s/, /n/, /r/

/a/

/ʃ/, /ʒ/

/o/

/k/, /g/, /x/

/u/

Мягкие, кроме /j/

/e/

Абсолютный конец

/i/

/l/

/ɨ/

5

6 of 13

Аллофонный синтез

Гласные – степени редукции:

0

Ударный гласный

1

Предударные гласные

2

/a/ во втором предударном слоге

4

Заударные гласные

5

Заударный неконечный /a/

вертолёт

[v’i1rta1l’o0t]

барабан

[ba2ra1ba0n]

подушка

[pa1du0ʃka4]

подушках

[pa1du0ʃka5x]

6

7 of 13

Корпус CORPRES

Skrelin, Pavel, et al. “CORPRES" International Conference on Text, Speech and Dialogue. Springer, Berlin, Heidelberg, 2010.

(CORpus of Professionally REad Speech)

7

8 of 13

Другие методы синтеза

Дифонный: вторая половина звука А + первая половина звука Б

+ лёгкость сегментации

  • увеличение числа единиц

Субаллофонный: половины звуков

Слоговой: слоги (количество единиц зависит от языка)

8

9 of 13

Unit Selection

Метод синтеза речи по тексту, в котором вся база данных потенциально может быть использована в качестве единиц синтеза.

Метод Unit Selection основан на принципе наименьшей модификации.

Используются два параметра:

  1. Стоимость разницы T (насколько потенциальный сегмент u отличается от целевого s)
  2. Стоимость склейки J (насколько плохо соседние сегменты сочетаются друг с другом)

9

10 of 13

Unit Selection

Единицы Unit Selection:

окна, субаллофоны, дифоны, аллофоны, полуслоги, дислоги, слоги, слова, фразы, …

Возможны системы, где используются несколько типов единиц.

10

11 of 13

Задание

написать функцию, которая принимает на вход последовательность транскрипционных знаков CORPRES (список), а возвращает список контекстных аллофонов (трифонов), каждый из которых - кортеж вида:

(“левый контекст”, “звук”, “правый контекст”)

Обозначения CORPRES: ш - sh, ж - zh, щ - sc, ц - c, ч - ch, х - h, ы - y

звонкие аллофоны глухих: C, H, CH, SC. Твёрдый аллофон: ch_

Например: j u0 r’ i4 j -> [(“#”, “j”, “rounded vowel”), (“j”, “u0”, “palatalized”), (“vowel”, “r’”, “unrounded vowel”), …]

11

12 of 13

Задание

Рекомендуемая архитектура:

  1. завести 4 словаря соответствий: левые контексты согласных, правые контексты согласных, …
  2. в каждом словаре ключи - названия групп, значения - списки звуков из этой группы. Список звуков легко задать так:

vowels = “i0 e0 a0 o0 u0 y0”.split()

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

12

13 of 13

Спасибо за внимание!

13