Page 3 of 5

Re: Проект: Речевой движок

Posted: Thu May 03, 2012 12:05 pm
by SoUrcerer
http://www.masters.donntu.edu.ua/2008/f ... ormant.htm
http://www.langust.ru/review/lang_h04.shtml
http://www.ie.tusur.ru/books/COI/page_44.htm
Методы синтеза речи

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

Дифонный подход позволяет делать разборчивый, но неестественный по тембру речевой сигнал. В тембре синтезированной речи не узнается тембр диктора-донора.
Аллофонный подход — естественность голоса несколько выше, чем в дифонном подходе за счет большего набора звуковых элементов. Однако, как и в дифонном синтезе голос получается довольно роботизированным, и в нем трудно узнать голос диктора-донора.
Unit Selection — естественность тембра речи высока и в синтезированный голос сохраняет тембровую окраску голоса диктора-донора. Однако из-за ограничений на размер голосовой базы некоторые тексты (слова и их сочетания) произносятся с заметными искажениями вплоть до полного выпадения отдельных звуков.
Надеюсь, поможет :)

Re: Проект: Речевой движок

Posted: Thu May 03, 2012 1:19 pm
by Mario
Я еще когда у меня не было PC прочел книжку, где подробно разбирались все методы синтеза речи. Автора и название к сожалению не помню, но там сильно пиарилась продукция компании Kurzweil Computer Products, Inc. Хотя в целом книжка была очень познавательной и полезной.

За ссылки спасибо.

Re: Проект: Речевой движок

Posted: Thu May 03, 2012 4:42 pm
by lev
http://dsp-book.narod.ru/books.html - книжки по цифровой обработке сигналов, в т.ч. и по речевому синтезу.

Re: Проект: Речевой движок

Posted: Thu May 03, 2012 6:31 pm
by XVilka
Модель Маркова забыли

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 2:34 pm
by Mario
XVilka wrote:Модель Маркова забыли
А оно разве не для распознавания речи? В текущем случае речь синтезируется, а на распознавание я пока не замахивался.

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 5:54 pm
by Mario
Нашел сайт энтузиаста http://www.bludnikov.ru/soft2.htm
Тема на форуме IXBT http://forum.ixbt.com
Не хочу хвастать, но мой SPEECH говорит все же более разборчиво. Чет там чувак перемудрил.

У кого-нибудь сохранился файл со списком слогов русского языка? А то в теме все ссылки уже мертвые, а у себя я найти не могу.

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 8:45 pm
by Rock_maniak_forever
Не, Alyona лучше!

Послушать:
Alyona.mp3
Книгодел.mp3 <- для сравнения.

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 8:54 pm
by Mario
Я знаю, что лучше (причем на порядок), но она платная.

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 9:42 pm
by SoUrcerer
Если рассматривать ССГ как два слога, то вот таблица:

а я э е о ё (ы) и у ю
б бь ба бя (бэ) бе бо бё бы би бу (бю)
в вь ва вя (вэ) ве во вё вы ви ву (вю)
г га (гя)(гэ) ге го гё гы ги гу (гю)
ж жа же жо жи жу
д дь да дя (дэ) де до дё ды ди ду дю
з зь за зя (зэ) зе зо зё зы зи зу зю
к ка (кя)(кэ) ке ко кё кы ки ку (кю)
чь ча че чё чи чу
л ль ла ля (лэ) ле ло лё лы ли лу лю
м мь ма мя (мэ) ме мо мё мы ми му (мю)
н нь на ня (нэ) не но нё ны ни ну ню
п пь па пя (пэ) пе по пё пы пи пу (пю)
р рь ра ря (рэ) ре ро рё ры ри ру рю
с сь са ся (сэ) се со сё сы си су сю
т ть та тя (тэ) те то тё ты ти ту тю
ф (фь) фа фя (фэ) фе фо фё фы фи фу (фю)
х ха (хэ) хе хо хи ху
ш ша ше шо ши шу
ц ца це цо цы цу
щь ща ще щё щи щу
Вот все возможные конечные согласные слова (25 шт):

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

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 10:46 pm
by Rock_maniak_forever
Mario wrote:Я знаю, что лучше (причем на порядок), но она платная.
Там таблэтка есть.

Re: Проект: Речевой движок

Posted: Fri May 04, 2012 11:31 pm
by Mario
Rock_maniak_forever wrote:Там таблэтка есть.
Я в курсе. Однако если можно не тырить, то зачем тырить? Есть альтернатива.

Re: Проект: Речевой движок

Posted: Sat May 05, 2012 4:32 pm
by Mario
Mario wrote:У кого-нибудь сохранился файл со списком слогов русского языка? А то в теме все ссылки уже мертвые, а у себя я найти не могу.
Уже не нужно я нашел файл. Всем спасибо за не помощь. (шутю)

Re: Проект: Речевой движок

Posted: Thu May 10, 2012 6:47 pm
by Mario
Я решил пока остановиться на 2-х буквенных сочетаниях слогов, поскольку количество 3-х буквенные превышает сумму 2-х и 1-но буквенных. Звуки записал и сейчас обрабатываю, если результат будет неудовлетворительным буду делать и 3-х буквенные.

Еще нужно написать код синтаксического анализатора, предыдущая реализация тупо брала значения из таблицы в 128 dword'ов. Сейчас же придется заняться разбивкой на слоги. Хотя уже есть идея выделить семплы в отдельный файл со структурой указателей по типу:
Spoiler:

Code: Select all

dd aText, Sample1
....
aText db 'ав',0
....
file 'ав.wav'
Это упростит написание кода анализатора. Ну, и в вероятном будущем позволит делать другие голоса. Я подозреваю что мой средне-уральско-татарский диалект русского не всех устроит. :mrgreen:

И еще сделать предварительную сборку слова из слогов, чтобы отсылать Infinity сразу кусок PCM данных в виде готового слова. Это уменьшит количество вызовов, ну и логически напрашивается вообще.

В общем то пост в тему о том, что работа не заглохла.

Re: Проект: Речевой движок

Posted: Sat May 19, 2012 11:03 pm
by Mario
Сегодня собрал первый рабочий вариант движка воспроизводящий по слогам. Нужно еще допиливать семлы одиночных букв, поскольку они были записаны на другой громкости и еще несколько выбиваются из общего ряда при произношении. Может быть заново надиктую.

В целом произношение стало заметно лучше, если бы использовать 3-х буквенные слоги было бы еще лучше, но даже с 2-х буквенными слогами количество семплов более 300. А с 3-х буквенными это еще +2222 семла (да-да, именно более двух тысяч). Боюсь я такую работу тупо не осилю, да и времени столько нет.

Еще размер файла с семплами распух до 19,2 Мб. Это из-за того, что для речи я использовал избыточное качество записи (48КГЦ/16бит/стерео) и в финальном варианте файл будет поменьше.

Re: Проект: Речевой движок

Posted: Sun May 20, 2012 4:40 pm
by Mario
Для тех у кого не работает звук в Колибри я сделал запись. Качество не фонтан, но чтобы оценить достаточно.
v01.mp3 928.9K первая реализация
v02.mp3 658.2K вторая реализация

Третья реализация, которая читает по слогам и которую я еще не выкладывал:
v03.mp3 687.5K

Третья реализация - Лукоморье:
v03_lukomorie.mp3 3.9M