Синтезатори мови в linux

Синтезатори мови в Linux

вступ

Вашій увазі пропонується невеликий огляд систем перетворення тексту в мову для Linux. Як здається, ця тема ще не обговорювалася в російськомовному інтернеті. Навіть складається враження, що дана область взагалі не існує або, принаймні, розвинена дуже слабо. Насправді це не так.

Перші персональні комп'ютери виглядали іграшкою. І досить довго саме так і використовувалися - для ігор, та ще для набору тексту. Звукова плата була екзотикою, а коли звук і CD ROM стали нормою, вони все одно годилися тільки для ігор і прослуховування музики. Мовними технологіями, яким були потрібні серйозні обчислювальні потужності, можна було займатися тільки на великих ЕОМ. Такі проекти не обіцяли швидкий комерційний успіх, тому розвивалися в основному в університетах і дослідницьких центрах, які працюють на далеку перспективу. Ось звідти все і пішло.

Зараз потужності настільних систем зросли настільки, що мовні технології стають доступні практично на будь-якому персональному комп'ютері. Кількість додатків, що використовують мову, стрімко збільшується, а якість зростає. Ось один із прикладів використання якісного синтезатора мови - російськомовна звукова доріжка до мультфільму "Льодовиковий період" на DVD. Більшість глядачів і не підозрюють, що персонажі говорять "комп'ютерним" голосом. Розвиток мовних технологій обіцяє зміни в усіх сферах життя. Наприклад, вже з'явилися перекладачі з однієї мови на іншу, які працюють за схемою "система розпізнавання мови - словник - система синтезу мови".

Кілька слів про те, як працюють синтезатори мови

Вважається, що людська мова складається в основному з односкладових і двоскладових звуків (алофонів і діфонов). Такий набір звуків можна скласти для будь-якої мови. Він набагато більше, ніж алфавіт, у французькому, наприклад, їх около1200. Звуки витягуються із запису реального людського голосу і у вигляді аудіофайлів організовуються в базу даних.

У кожній мові існують слова з нестандартними правилами вимови. Для таких слів складається спеціальний словник - лексикон. При розборі тексту комп'ютер шукає слово в першу чергу в лексиконі, а якщо його там немає, то складає звуки відповідно до правил для даного мови.

Що вдалося знайти в павутині

Подивимося тепер, що ж є в цій галузі для Linux. Ось що видав Google:

The Festival Speech Synthesis System - Festival is a general multi-lingual speech synthesis system developed at CSTR. It offers a full text to speech system with various APIs, as well an environment for development and research of speech synthesis techniques.

The Festvox Project - Free software tools and documentation for building new speech synthesis voices in English and other languages. From Carnegie Mellon.

Unix Speech Recognition - Special Synapse TAP Workstation translates speech into mouse events and keystrokes to control all environments - Unix, mainfame, and Mac with speech recognition.

Speaker - Text to Speech for Konqueror - A text to speech plug in for the KDE desktop file manager under Linux.

Flite - Flite (festival-lite) is a small, fast run-time synthesis engine developed at CMU and primarily designed for small embedded machines and / or large servers.

FreeTTS 1.1.1 - A speech synthesizer written entirely in the JavaTM programming language

KVoiceControl - just say it! - Kvoicecontrol is a speech recognition system that allows users to convert spoken commands to Linux / unix commands. For KDE and X windows.

The MBROLA PROJECT - Multi-lingual text to speech synthesis. Free multi platform software download for research purposes.

FreeSpeech - Free Speech Recognition for Linux - Openmind (Freespeech) is a free speech recognition project for Linux. It will be designed so that it can be easily integrated into any application or window manager as well as the KDE and Ggnome desktop environments.

IBM ViaVoice SDK for Linux - The ViaVoice Kit provide the necessary tools to develop applications that incorporate speech recognition using Linux

DDLinux Speech Recognition Mailing List - Announcements of speech recognition software for Linux.

BaBel Technologies - The specificity of MBROLA resides in the original process used to generate the synthetic diphones. This approach which is based on Multi-Band Excited (MBE) analysis allows spectral smoothing of the concatenation points, producing a much more natural voice than with any other concatenative systems.

Bayonne - Telephony Server of the GNU Project - Bayonne is the free multi-line telephony server of the GNU project. Source code available for LINUX / UNIX targeted towards messaging, IVR with considerable extensibility. Bayonne supports a modular architecture, native scripting and TGI.

Не дуже багато, але тут присутні як системи розпізнавання, так і синтезу мови. В даному огляді ми розглянемо системи синтезу.

Огляд систем синтезу мови за текстом

На першому місці в списку стоїть проект The Festival Speech Synthesis System (Система синтезу мовлення Festival). Це дослідницька програма, метою якої є вивчення процесу синтезу людського голосу на комп'ютері. Festival розроблявся і розвивається під Unix.

В даний час доступні мови: американський і британський англійський, валлійський, іспанська. Відзначається, що англійська опрацьовано краще за інших. Підтримується читання текстів різного характеру, облік інтонації, читання слів з нестандартним вимовою. Можна підключати мовні бази MBROLA (див. Нижче).

Дистрибутив включає:
  • повний C ++ вихідний код,
  • лексикону CMULEX і OALD (для некомерційного використання),
  • низкоуровневую C ++ бібліотеку Edinburgh Speech Tools,
  • діфонние бази для американського і британського англійської, а також іспанської мов,
  • повний комплект документації.

Festival входить до складу багатьох дистрибутивів Linux. Щоб спробувати, як він працює, можна, наприклад, завантажитися з широко вже відомого диска Knoppix. Є він і в RedHat 9 у вигляді rpm-пакетів на другому установчому диску. Якщо потрібна тільки функція читання тексту, то робимо
rpm -iv /. /festival-1.4.2-16.i386.rpm
rpm -iv /. /festival-devel-1.4.2-16.i386.rpm

Якщо є бажання вивчити Festival глибше, то краще все-таки встановлювати систему з вихідних. Для установки необхідно завантажити пакети:
festival-1.4.3-release.tar.gz - власне синтезатор голосу.
speech_tools-1.2.3-release.tar.gz - низкоуровневая бібліотека голосових коштів The Edinburgh Speech Tools.
festvox_NAME.tar.gz - голосові бази даних і лексикон. Доступні різні (з різною політикою поширення). Кожен голос може зажадати окремих доповнень, таких як приватний лексикон. Крім того, бази відрізняються якістю синтезованого голосу і своєю організацією. Ось деякі:
- festlex_en_1.tar.gz- британський англійський, чоловічий голос
- festvox_us_1.tar.gz- американську англійську, жіночий голос
- festvox_kedlpc16k.tar.gz - американська англійська, чоловічий голос
- festvox_rablpc16k.tar.gz - британський англійський, чоловічий голос
- festlex_CMU.tar.gz - лексикон
- festlex_OALD.tar.gz - лексикон
- festlex_POSLEX.tar.gz - лексикон
festdoc_1.4.0.tar.gz - документація на Festival і Speech Tools.
Для створення нових голосів потрібен festvox-2.0-release.tar.gz зі своїм пакетом документації.

Всі вихідні потрібно розпакувати в окремий каталог, наприклад / opt / festival. Має вийти два підкаталоги:
speech_tools /
festival /
Якщо встановлюється і festvox, то буде і третій підкаталог.

Спочатку потрібно відкомпілювати бібліотеку голосових коштів The Edinburgh Speech Tools.
cd / opt / festival / speech_tools /
./ configure
make
Виконувані файли нікуди не переміщаються, а залишаються тут же.
Потім компілюється Festival:
cd / opt / festival / festival /
./ configure
make
Аналогічно робимо з Festvox, який потрібен, як уже говорилося тільки для створення нового голосу і не потрібен для синтезу мовлення з використанням вже наявних баз.
Шлях до виконуваних файлів потрібно зафіксувати в файлі / etc / profile. Додамо до відповідних місця рядки:
pathmunge / opt / festival / speech_tools / bin
pathmunge / opt / festival / festival / bin

Тепер спробуємо що-небудь прочитати. Вся робота відбувається в командному рядку. Щоб увійти в програму, набираємо:
festival
Запускається власний командний інтерпретатор, що видно по зміні запрошення командного рядка:
festival>
За замовчуванням включається англійську мову. Проговорити текст можна так:
festival> (SayText "Hello World")
Спочатку нічого не відбувається. У документації написано, що програма повинна обробити весь текст, перш ніж почне говорити. Щоб уникнути цього, передбачений режим використання так званого голосового спулера. Він включається опцією (audio_mode async). Тоді мова виникає відразу, не чекаючи розбору тексту до кінця. Вийшло? Тепер спробуємо по-російськи:
festival> (SayText "festival govorit po russki")
Розібрати можна, але. Як і слід було очікувати, необхідні російська діфонная база і українські правила синтезу. Про це - трохи пізніше.
Можна проговорити файл, звичайно якщо він англійською (знаки "***", природно, треба замінити на що-небудь своє):
festival> (tts "***. txt" nil) (audio_mode async)
Вихід з програми:
C-d або (quit) або Exit Festiva l
Можливе використання Festival прямо з shell:
festival --tts ./***.txt
Утиліта text2wave переводить текстовий файл в звуковий.
/ Opt / festival / festival / bin / text2wave

Festival можна використовувати окремо (як в цьому прикладі короткого сеансу), а можна вбудовувати в інші додатки, в тому числі з використанням технології Java, яка підтримується починаючи з версії 1.4.0. Можливостей багато, а для того, щоб отримати нові, є всі засоби. Відсутність української мови це звичайно мінус, але не розробникам, а скоріше нам. Як то кажуть порятунок потопаючого. і т.д. Як вже говорилося, все що потрібно для створення нового голосу, є.

Проект Festival не єдиний з області мовних технологій для Unix-подібних систем. Подивимося, що ще є в списку.

FreeTTS - розробник Speech Integration Group of Sun Microsystems Laboratories. Мультиплатформовий, відкритий проект, заснований на Java і тільки що згадуваному Flight, який, як ми вже знаємо, веде своє походження від проекту Festival. Отже, знову доступні бази цих проектів і MBROLA.

BaBel Technologies

BaBel Technologies - мультиплатформенний синтезатор мови на основі технології і голосових баз MBROLA. Ведеться побудову нових голосів (на додаток до тих, що є в бельгійському проекті). Будемо сподіватися, що український з'явиться. Але, схоже, що це комерційний проект.

IBM ViaVoice

IBM ViaVoice. Про цей проект відомо лише, що української мови там немає.

вітчизняні проекти

Мабуть, на цьому можна закінчити перерахування синтезаторів голосу, сумісних з Linux. Видно, що є з чого вибрати. Проблема полягає в тому, що поки немає українського голосу. Невже у нас зовсім ніхто не займається синтезом російської мови?
Не зовсім так. Ось два посилання:
Клуб голосових технологій МДУ ім. М. В. Ломоносова, Київ.
Фірма "Сакрамент", Мінськ.
На жаль, як я зрозумів, це комерційні проекти, орієнтовані на Windows. Був би радий помилитися. (Н з Дайте компанії Сакрамент вже пропонується Sakrament Text-To-Speech SDK Linux Edition v. 1.0 (Russian Version)).

Але не все так сумно. Є ентузіасти і серед вітчизняних програмістів. Про систему синтезу російської мови для Linux, розробленої Ігорем Процюк та Дмитром падучу можна прочитати тут.

Чи можна самому побудувати новий голос?

Як уже згадувалося, спеціально для створення нового голосу є цілий комплекс програмних засобів - FestVox. Звичайно, в ньому треба розібратися. Звичайно, вся документація англійською. Звичайно, буде багато ручної роботи, тому що не всі етапи автоматизовані. Природно, доведеться розібратися і в тому, як підключити цей голос до синтезатора, і в тому, як забезпечити підтримку кирилиці. Але у всьому цьому немає нічого неможливого.

Чи є сенс цим займатися? Без сумніву. Така робота має всі шанси увійти в дистрибутиви Linux, по крайней мере, в отечеcтвенние. Наявність голосових технологій в конкретному дистрибутиві дасть йому відчутні переваги перед іншими. Адже інтеграція з Open Office, Mozila і іншими додатками відкриває перед користувачем зовсім нові можливості. Той, хто раніше за інших покаже дорогу до всіх цих чудес, не буде забутий.

Трохи про створення нового голосу. Ось що радять ті ж розробники Festival і MBROLA.

Робота зі створення нового голосу вимагає часу, завзяття та акуратності (а яка не вимагає?). Є деякі особливості, які потрібно знати.

Далі - відповідно до інструкцій, які є в документації по проектам Festival і FestVox. У результаті повинна вийти діфонная база і сформовані правила синтезу слів і пропозицій. Потім новий голос підключається до синтезатора мови.

висновок

Схожі статті