Синтезаторы речи для линукс
Статья подготовлена специально для Linux-библиотеки. Впервые опубликована на UNIX4ALL. Использованы, в том числе в виде цитат, файлы документации, входящие в пакеты ru_tts и rulex Игоря Порецкого и Дмитрия Падучих.
Помню, как когда-то меня поразила работа программы «Говорилка» для Windows. Я впервые услышал, как компьютер читает голосом текстовый файл — вполне разборчиво и вполне по-русски. Фантастика. Позднее, когда Linux стал для меня системой номер 1, очень хотелось иметь что то подобное и в нем. Я даже провёл небольшое исследование на эту тему — поиск голосовых движков для Linux, результатом чего явился обзор «Синтезаторы речи в Linux». Их оказалось много, но русского голоса не было ни в одном.
Как это часто бывает в мире Open Source, хорошие новости пришли не от мэйнстрим-разработчиков ПО, а от энтузиастов.
Совсем недавно, мне попалось сообщение о выходе новой версии дистрибутива Oralux . Это — Live CD на основе Knoppix, и предназначен он для людей с ослабленным зрением. В версии 0.6 alpha появилось звуковое меню на русском языке, и добавлены два новых синтезатора речи: ParleMax (французский язык) и Multispeech/Ru_tts (русский и английский). Сообщалось, что автором последнего является Игорь Порецкий, а ссылка вела на его ftp, куда я сразу же и отправился.
Оказалось, что ru_tts разработан (судя по дате создания файлов) ещё в феврале 2003 года совместно Игорем Порецким и Дмитрием Падучих. Это — полнофункциональный программный tts (text-to-speech). Он является полностью автономным в том смысле, что не нуждается в дополнительных голосовых базах или системных библиотеках кроме стандартных библиотек, входящих в любой дистрибутив. Синтезатор речи может работать со словарем ударений rulex , полученным из словаря Мюллера на 60 000 слов. Входной текст ru_tts воспринимает в кодировке koi8-r . На упомянутом выше ftp есть также программы, позволяющие использовать ru_tts в среде Emacs .
Установка.
Синтезатор речи и словарь доступны в виде уже скомпилированных пакетов ru_tts-0.4-i586-1.tgz (188кб) и rulex-0.9.14-noarch-1.tgz (5,6Мб). Их надо скачать и разархивировать в соответствующие подкаталоги каталога /usr . В каждом пакете есть файл документации на русском языке.
Вместо пакета ru_tts-0.4-i586-1 можно использовать один файл ru_tts.static (870кб), поместив его в каталог /usr/local/bin . Разницы в работе я не заметил.
Синтезатор ru_tts не занимается выводом звука, он только подготавливает для этого звуковой файл, разбирая входной текст и выстраивая в цепочку нужные звуки. Поэтому нужно, чтобы в системе был установлен какой-либо подходящий пакет для проигрывания звука, например sox . Это мощный проигрыватель и конвертор звуковых файлов. Естественно, что sox есть практически во всех дистрибутивах Linux. Исключение составляют некоторые специальные, например одно- двух- дискетные дистрибутивы. Это нужно учитывать при попытке встроить в них синтезатор речи, а его небольшой размер это вполне позволяет, если не включать словарь.
На этом установку синтезатора речи можно считать законченной и приступить к его проверке. Нужно только учитывать, что в Linux звук в разных режимах выводится по разному. В консольном режиме это может быть просто звуковое устройство, в графическом — звуковой сервер; можно также выводить звук в файл. Важно, чтобы синтезатор выводил звук туда, куда нужно. Всё рассказанное ниже относится к работе с сервером звука aRts в KDE.
До сих пор я сознательно не оговаривал тип дистрибутива Linux. Похоже, что это для ru_tts не имеет значения. Я устанавливал его в Linux XP, причём делал это так, как рассказано выше. Кроме того, проверил работу синтезатора в Knoppix 3.4 — просто переписал ru_tts_static в домашний каталог. Всё отлично работало. Судя по всему, то же самое будет и в любой другой Linux-системе.
Проверка и настройка.
Создайте в своем домашнем каталоге небольшой текстовый файл, содержащий одно-два предложения на русском языке, причём, как уже говорилось, обязательно в кодировке koi8-r . Пусть этот файл называется test.txt . Для начала попробуем с помошью синтезатора перевести этот текстовый файл в звуковой, в формате wav . Отправим наш тестовый файл по конвейеру сначала синтезатору ru_tts , который переведёт его в голосовую форму, а затем — конвертору sox , который преобразует его в формат wav .
Команда должна выполниться без ошибок и не произведя никаких звуков, а в домашнем каталоге должен появиться файл test.wav , который можно воспроизвести любым музыкальным проигрывателем. Скорее всего, Вы услышите фразы из файла test.txt , произнесенные «кукольным» голосом, т.е. речь звучит слишком быстро и тембр ее сдвинут вверх [1]. Это значит, что тест прошел успешно, и можно перейти к настройке синтезатора. Здесь самое место дать некоторые пояснения.
Во-первых, ru_tts можно (но не обязательно, как видно из приведенного выше примера) использовать с параметрами. Вот их перечень:
— h — как всегда — краткая справка об использовании.
— p
— установка высоты голоса. Значение pitch может быть от 0 (самый низкий голос) до 1. 0 (самый высокий).
— r — Установка скорости речи. Опять-таки от 0 (самая быстрая речь) до 1. 0 (самая неспешная).
— m — заставляет синтезатор говорить совершенно монотонно, без всяких интонаций. Заметно, что без этого ключа синтезированная речь воспринимается естественнее, например, понижением голоса выделяется окончание фразы, а соответствующим повышением — восклицательные предложения и т.п.
— v — загрузка голосового файла. Это совершенно необязательно, так как в синтезаторе уже есть встроенный голос, но можно загрузить и другой. Есть ли другие, мне неизвестно. Возможно, авторы планируют их создание.
— s — файл словаря ударений. Речь здесь идет о словаре rulex , который у нас уже установлен. За параметром -s должен следовать путь к словарю в абсолютном виде. Хотя синтезатор работает и без него, подключение словаря сильно улучшает качество речи. Надо сказать, что создание словаря ударений — сама по себе большая работа, и его наличие говорит о тщательности, с какой авторы подошли к созданию голосового синтезатора.
— l — файл для накопления слов, не найденных в словаре. Имеет смысл лишь совместно с заданием ключа -s . Если есть терпение и время, то с помощью полученного таким образом списка словарь можно пополнять. В файле документации подробно рассказано, каким образом всё это можно сделать. Во-вторых, вывод синтезатора представляет собой оцифрованный звук в формате «raw linear signet 16-bit 10 kHz» [1]. Отсюда появляются ключи программы sox: -t raw (тип звукового файла), -s (линейное кодирование), -w (число битов на отсчет 16), -r 10000 (частота дискретизации 10 кГц), -c 1 (один канал, т.е. моно), -v 0.8 (уровень громкости выхода на уровне 0,8 от максимума). Параметров много, поэтому есть смысл почитать man sox . Всегда лучше понимать, что делаешь.
В-третьих, в приведенном выше примере вывод в файл использован для того, чтобы избежать на начальном этапе возможных проблем с указанием правильного звукового устройства для sox . Это лишь один из способов преобразования текста в речь. Существуют и другие, о них — немного позже.
Итак, синтез речи работает. Но его надо настроить. Первая проблема — «кукольный» голос. Видимо, связано это с тем, что с момента создания синтезатора прошло уже некоторое время, и компьютеры стали более мощными. Они слишком быстро справляются с задачей синтеза. Во всяком случае, разработчики заложили возможность использования ключей -p и -r . Но, на мой взгляд, удобнее пользоваться аналогичными ключами программы sox: speed и stretch . Первый действует подобно изменению скорости протяжки пленки в аудиоплеере, а число, которое за ним следует, определяет коэффициент изменения этой скорости — меньше 1- замедление, больше 1 — ускорение. При этом соответствующим образом меняется и высота звука. А ключ stretch позволяет менять скорость, не влияя на частотные характеристики речи. Он может использоваться для подстройки, мало меняя уже подобранный тембр голоса. Хотя изменения всё-таки есть, и — не в лучшую сторону. Голос становится более «металлическим» («робот»). А вообще, sox имеет много разных фильтров, так что можно поэкспериментировать.
Вот такая команда читает голосом наш тестовый файл при подключенном словаре и приемлемых для моего компьютера скорости чтения и тембре голоса, вывод происходит на звуковой сервер aRts :
А такие — создают звуковой файл test.wav или более компактный файл test.ogg с прочитанным текстом:
/test.txt | ru_tts -s /usr/local/lib/ru_tts/lexicon | sox -t raw -s -w -r 10000 -c 1 -v 0.8 —
/test.wav speed 0.52
cat
/test.txt | ru_tts -s /usr/local/lib/ru_tts/lexicon | sox -t raw -s -w -r 10000 -c 1 -v 0.8 —
/test.ogg speed 0.52
Сравнение с другими программными синтезаторами речи.
Поскольку ru_tts — первая ласточка, то и сравнивать его в Linux пока не с чем. Для платформы Windows существуют русскоязычные программные синтезаторы такого же класса, наиболее доступными из которых являются модуль для синтеза русской речи фирмы Lernout & Hauspie и аналогичный компонент Digalo французской компании Elan. Оба базируются на Microsoft Speech API, при этом первый можно установить бесплатно (для тех, кто уже заплатил за лицензию Windows), а второй стоит около 30 евро. Интересно, что ещё год назад Elan собиралась выпустить свой tts для Linux. Объявление о том, что это пока не сделано, до сих пор висит на зарезервированной для такого случая странице их сайта.
В данном случае лучше один раз услышать, чем сто раз прочитать. Скачав файл в формате mp3 (размер 101 кб), Вы можете сами сравнить звучание синтезаторов речи. Этот файл сшит из трех файлов, полученных в результате работы голосовых движков Lernout & Hauspie, Digalo и ru_tts .
Использование.
Первое, для чего я попробовал использовать ru_tts — вывод сообщений KDE типа «КДЕ запущен и готов к работе» или «Переход на четвертый рабочий стол» и т.п. Сделать это просто — надо создать файл с соответствующим текстом, затем перевести его в wav , а далее выбрать этот файл ( Центр управления KDE — Звук и мультимедиа — Системные уведомления ) в нужном пункте. После этого вместо бряканья и кваканья компьютер будет комментировать по-русски все Ваши действия. Мне кажется, что людям с ослабленным зрением такая модернизация может пригодиться.
Возможность получить говорящую книгу в формате mp3 я тоже проверил. Озвученную книгу можно затем записать на CD и прослушивать с помощью плеера, например, по дороге на работу. Результат такой: текстовый файл размером 150 кб преобразовывался в формат mp3 около 3 минут и занял примерно 35 мб.
Те, кто работает в среде Emacs , могут воспользоваться имеющейся там системой Emacspeak , которая может быть подключена к ru_tts . Кроме того, авторы ru_tts создали для Emacs программу чтения голосом книг rbook . Это должно обеспечить, как я понял, «чтение с листа» набираемого в редакторе или уже готового текста. Работу этих приложений я не проверял.
Хотелось бы надеяться, что эта статья вызовет интерес к ru_tts , а также — появление приложений для него. И, на мой взгляд, включение русскоязычного синтезатора речи в отечественный дистрибутив — хорошая идея.
А вот ещё одна сфера применения для ru_tts . В апреле 2004 года, фирма Sony начала продажу первой в своем роде электронной книги Librie 1000-EP на основе специальной, пока черно-белой, электронной бумаги. Это — планшет размера A4 и весом 300 грамм. И работает это чудо под управлением Linux. Синтезатора речи, насколько я знаю, в нем пока нет.
Заключение.
Возможно, кто-то скажет — игрушка, не более того. И будет неправ. Дело не только в том, что синтезатор речи может оказаться незаменимым для людей с ослабленным зрением, хотя это само по себе очень важно. Для всех нас речь остается самым удобным и привычным способом обмена информацией. Думаю, что при общении с компьютером голосовой интерфейс тоже окажется по меньшей мере полезным. Конечно — при условии доступности качественных синтезаторов голоса и систем распознавания речи, а также удобного управления ими. И сейчас наблюдается прогресс по всем этим направлениям.
Существующие синтезаторы для Linux могут говорить на множестве языков, но не на русском.
Теперь есть и русский, за что огромное спасибо его создателям — Игорю Порецкому и Дмитрию Падучих.
Послесловие
Комментарий Дмитрия Падучих : Неудивительно, что голос получается «кукольный». ru_tts генерирует 8-битный звук, поэтому на входе у sox должен быть ключ -b, а не -w. Примерно так:
Источник
Синтезаторы речи для линукс
Синтезаторы речи в Linux.
Вашему вниманию предлагается небольшой обзор систем преобразования текста в речь для Linux. Как кажется, эта тема еще не обсуждалась в русскоязычном интернете. Даже создается впечатление, что данная область вообще не существует или, по крайней мере, развита очень слабо. На самом деле это не так.
Речь по прежнему остается самым удобным и привычным способом обмена информацией между людьми. Понятно стремление получить похожий «интерфейс» и при общении с машинами. Действительно, таких устройств становится все больше. Телефоны и холодильники, автомобили и охранные системы, торговое, медицинское, авиационное оборудование и многое другое наделяются функциями распознавания (ASR) и синтеза (TTS) человеческой речи. И, конечно же, — компьютеры.
Первые персональные компьютеры выглядели игрушкой. И довольно долго именно так и использовались — для игр, да еще для набора текста. Звуковая плата была экзотикой, а когда звук и 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 разрабатывался и развивается под Unix.
Проект начат в апреле 1996 года в Центре изучения речевых технологий университета Эдинбурга, Шотландия (The Centre for Speech Technology Research University of Edinburgh). Код написан Alan W Black, Paul Taylor и Richard Caley. Базовой моделью для него послужил синтезатор, созданный Amy Isard в 1995 году, который, в свою очередь, использовал библиотеку голосовых средств (The Edinburgh Speech Tools Library), первая редакция которой относится к 1994 году. Позднее в проекте принял участие университет Карнеги-Меллона (The Carnegie Mellon University) в США, где работа шла, как кажется, в более прикладном ключе. Появилось много приложений, ориентированных на конечного пользователя. Среди разработок CMU (не обязательно связанных с проектом Festival) — такие, как говорящий интернет-броузер, читалка для детей, программа для обучения иностранному языку, система распознавания голоса и даже переводчик с одного языка на другой. Особенно нужно отметить проект FestVox, в котором проявилось стремление американцев автоматизировать все, что только возможно. Его уникальность в том, что он позволяет почти АВТОМАТИЧЕСКИ построить дифонные базы для нового языка, которые потом можно использовать в системе Festival. Это может быть новый голос на как английском, так и другом языке. Вместо нескольких месяцев работы новый язык может быть добавлен в систему за неделю, во всяком случае так утверждается. И даже говорится, что были эксперименты с русским (может не только эксперименты?). FestVox можно свободно скачать с сайта CMU и использовать.
Последние по времени версии программы Festival и библиотеки The Edinburgh Speech Tools Library появились в январе 2003 г. Проект Festival развивается в духе Open Sources. Он написан на С++, имеет собственный командный интерпретатор Scheme (SIOD), хорошо документирован, естественно на английском.
В настоящее время доступны языки: американский и британский английский, валлийский, испанский. Отмечается, что английский проработан лучше других. Поддерживается чтение текстов разного характера, учет интонации, чтение слов с нестандартным произношением. Можно подключать языковые базы 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 Festival
Возможно использование Festival прямо из shell:
festival —tts ./***.txt
Утилита text2wave переводит текстовый файл в звуковой.
/opt/festival/festival/bin/text2wave
Festival можно использовать отдельно (как в этом примере короткого сеанса), а можно встраивать в другие приложения, в том числе с использованием технологии Java, которая поддерживается начиная с версии 1.4.0. Возможностей много, а для того, чтобы получить новые, есть все средства. Отсутствие русского языка это конечно минус, но не разработчикам, а скорее нам. Как говорится спасение утопающего. и т.д. Как уже говорилось, все что нужно для создания нового голоса, имеется.
Проект Festival не единственный из области речевых технологий для Unix-подобных систем. Посмотрим, что еще есть в списке.
Бельгийский проект MBROLA. Он свободен для некоммерческого использования, хотя исходные коды авторы не дают. В принципе, их можно получить — на сайте по этому поводу есть информация. MBROLA является мультиплатформенным проектом и содержит базы для следующих языков: американский и британский английский, европейский и канадский французский, европейский и мексиканский испанский, итальянский, европейский и бразильский португальский, немецкий, шведский, датский, греческий, турецкий, эстонский, польский, румынский, хорватский, чешский, арабский, индийский, японский, корейский, индонезийский. Утверждается, что качество речи высокое.
Интересно то, что голосовые базы MBROLA можно использовать в проекте Festival. Так что, если понадобится индонезийский, то проблем не будет.
А вот русского опять нет. Но его можно добавить. Для этого нужно записать голос диктора (в соответствии с инструкциями, которые есть на сайте) и выслать эту запись разработчикам, которые на этой основе могут сделать голосовую базу. Процесс построения нового голоса может занять 6-8 недель.
Flite (festival-lite) — небольшой и быстрый синтезатор, созданный в университете Карнеги-Меллона с участием авторов Festival. Это — несколько измененный и облегченный Festival, предназначенный для голосов, построенных с помощью FestVox (снова американская автоматизация).
FreeTTS — разработчик Speech Integration Group of Sun Microsystems Laboratories. Мультиплатформенный, открытый проект, основанный на Java и только что упоминавшемся Flight, который, как мы уже знаем, ведет свое происхождение от проекта Festival. Следовательно, снова доступны базы этих проектов и MBROLA.
BaBel Technologies — мультиплатформенный синтезатор речи на основе технологии и голосовых баз MBROLA. Ведется построение новых голосов (в дополнение к тем, что есть в бельгийском проекте). Будем надеяться, что русский появится. Но, похоже, что это коммерческий проект.
IBM ViaVoice. Об этом проекте известно только, что русского языка там нет.
NeoSpeech — калифорнийская компания (с преимущественно корейским капиталом). На сайте предлагаются речевые технологии очень высокого качества для всех платформ, в том числе и для Linux. Сейчас существуют реализации для американского английского, корейского и китайского языков. Неизвестно, как их приобрести и по какой лицензии — для связи только e-mail.
Пожалуй, на этом можно закончить перечисление синтезаторов голоса, совместимых с Linux. Видно, что есть из чего выбрать. Проблема состоит в том, что пока нет русского голоса. Неужели у нас совсем никто не занимается синтезом русской речи?
Не совсем так. Вот две ссылки:
Клуб голосовых технологий МГУ им. М. В. Ломоносова, Москва.
Фирма «Сакрамент», Минск.
К сожалению, как я понял, это коммерческие проекты, ориентированные на Windows. Был бы рад ошибиться.
Можно ли самому построить новый голос?
Как уже упоминалось, специально для создания нового голоса есть целый комплекс программных средств — FestVox. Конечно, в нем надо разобраться. Конечно, вся документация на английском. Конечно, будет много ручной работы, потому что не все этапы автоматизированы. Естественно, придется разобраться и в том. как подключить этот голос к собственно синтезатору, и в том, как обеспечить поддержку кириллицы. Но во всем этом нет ничего невозможного.
Есть ли смысл этим заниматься?
Несомненно. Такая работа имеет все шансы войти в дистрибутивы Linux, по крайней, мере в отечеcтвенные. Наличие голосовых технологий в конкретном дистрибутиве даст ему ощутимые преимущества перед другими. Ведь интеграция с Open Office, Mozila и другими приложениями открывает перед пользователем совершенно новые возможности. Тот, кто раньше других покажет дорогу ко всем этим чудесам, не будет забыт.
Немного о создании нового голоса. Вот что советуют те же разработчики Festival и MBROLA.
Работа по созданию нового голоса требует времени, упорства и аккуратности (а какая не требует?). Есть некоторые особенности, которые нужно знать.
Прежде всего необходима высококачественная аудиозапись голоса диктора, читающего текст. В дальнейшем она будет источником звуков для дифонной базы. Диктор не обязательно должен быть профессиональным. Многие люди обладают вполне приличной дикцией. Очень важно то, что диктор должен дать разрешение на использование своего голоса, так как он является его собственником. В качестве текста рекомендуется использовать набор слов, составленный из не повторяющихся звуков языка. Фактически звуки искусственно соединяют в слова, чтобы избежать повторений. При этом сами слова получаются бессмысленными, но утверждается, что такой текст потом легче обработать. Перед записью надо потренироваться читать эту абракадабру. Хотя, наверное, этот путь не единственный.
Качество записи должно быть наилучшим из всех возможных. Компьютер для записи не годится, даже если в нем установлена крутая звуковая карта. Шум вентиляторов все испортит. Идеальный, но и самый дорогой вариант — студия звукозаписи с профессиональным оборудованием. Хорошего качества можно добиться и более простыми средствами, например используя музыкальный центр. Еще лучше — минидисковый плеер с функцией записи. Он дает очень высокое качество записи, которое определяется в первую очередь качеством микрофона. Микрофон, конечно, тоже должен быть хорошим. Не надо даже пробовать капсюль, которым комплектуются компьютерные гарнитуры или бытовые телефоны. А вот микрофон для караоке может подойти. Помещение, в котором производится запись, не должно давать отраженного от стен звука и не должно пропускать внешние шумы (на ум приходит почему то платяной шкаф). Запись надо производить за один раз, это поможет избежать сильной коррекции уровней при дальнейшей работе. Темп речи должен быть постоянным, сама речь монотонной (без интонаций). Желательно сделать несколько записей и выбрать наилучшую.
Дальше — в соответствии с инструкциями, которые есть в документации по проектам Festival и FestVox. В результате должна получиться дифонная база и сформированы правила синтеза слов и предложений. Затем новый голос подключается к синтезатору речи.
Мультимедиа — это не только музыка и видео на компьютере. Голосовые технологии обязательно займут здесь одно из главных мест. Многие задачи из этой области успешно решаются для Linux, в том числе и задача синтеза речи. А то, когда Linux заговорит по-русски, зависит в первую очередь от нас самих.
Источник