Менестрель


Главная


Цель проекта

Целью проекта является создание программы чтения и озвучивания электронных, в основном художественных, книг.

Хотелось бы реализовать кросс платформенную версию, но использование SAPI в Windows в этом не содействует, но кросс платформенность Festival дает на это надежды.
Лирическое отступление

SAPI имеет довольно специфический интерфейс, в отличии от простейшего командного интерфейса, который в т.ч. присутствует в Festival, что позволяет большему числу разработчиков в большем числе приложений использовать TTS- интерфейс. Это можно определить следующей метафорой:
Английский лук и дробовик в сложности изготовления и дальности прицельной стрельбы примерно идентичны, но чтобы уметь хорошо стрелять из английского лука, надо затратить 5 лет, а чтобы научиться стрелять из дробовика- достаточно 3-х дней.



Менестрель- это программа предназначенная для озвучки различных текстов преимущественно на русском языке и имеющая графический интерфейс. Тексты предполагаются художественного содержания. В Windows достаточно много всяческих программ- говорилок с использованием SAPI с бесплатными и платными русскими голосами. Есть программы для Windows и от белорусской фирмы Sacrament с достаточным количеством голосов и с собственным движком и интерфейсом.

Программа называлась "Рассказчiк". Есть и мобильные версии этой программы. Мне эта программа понравилась в использовании- в ней есть возможность открывать несколько видов текстовых файлов, при прочтении, подсвечиваются читаемые участки текста, можно поставить закладки по тексту (неограниченное число) и осуществлять переходы на закладки. После закрытия программы и ее открытия через некоторое время - текст открывается в месте предыдущей остановки, и озвучка осуществляется с того же места. Все это мне показалось удобным и захотелось найти что-то похожее в Linux и по русски, желательно. Как выяснилось, ничего подобного почему-то не находилось ни в платном, ни в бесплатном сегменте. Нашлись только 4 голосовых движка, имеющих русские голоса- eSpeak, ru-tts, RHVoice и Festival. Исходя из этого и захотелось создать на базе подходящих TTS-движков нечто похожее по функциональности вышеописанной программе.


А теперь поговорим о качестве голосов


Английских голосов хорошего качества довольно много, а вот с русскими все сложно. Ни один из русских голосов полноценно не интонирует, хотя и делают это в разной степени.

В Windows бесплатные голоса имеют качество- определяемое только не нормативной лексикой и использовать их очень тяжело, только в крайней необходимости их можно использовать. Хотя недавно для Windows появился SAPI голос RHVoice- Ольги Яковлевой. Он почти совершенный мужкой голос. В платных системах (Djigalo и Sacrament) голоса значительно лучше и при привыкании ими даже условно-комфортно пользоваться, они в разной степени интонированы, но ни один не поддерживает вопросительную и восклицательную интонацию. В мобильных системах присутствует на WinMobile и Symbiane только Sacrament со своими голосами, с неплохими, но далеко не лучшими, а вот на Android присутствует очень неплохой русский женский и мужской голос, почти совершенный. Естественное качество синтеза, хорошо и достаточно естественно интонированный, единственно только не выделяет интонацией вопросительные и восклицательные предложения.

А теперь рассмотрим Linux

Найденные движки с русскими голосами все бесплатные. Платный движок только один- тот же Sacrament, с теми же голосами, но почему-то не подъемно дорого, поэтому я остановился на 4-х бесплатных.

  1. eSpeak хоть и имеет очень неплохие голоса на разных языках - русский у него просто ужасный, хуже бесплатных из Windows, поэтому я от него отказался

  2. ru_tts монолитный, неприхотливый, довольно быстрый, но по качеству немного хуже "Николая" из Djigalo, имеет свой словарь ударений. Принимает текст из стандартного входного потока в кодировке KOI-8R и результат отправляет в стандартный выходной поток, представляющий из себя звуковой полуфабрикат в RAW формате. Движок и голос совмещены. Только русский и больше ничего.

  3. Festival с голосом msu_ru_nsh_clunits. Довольно качественный, достаточно хорошо интонированный, кросс платформенный. Принимает текст в кодировке UTF-8, как из файла, так и из входного потока. Озвучивать может как непосредственно в звуковую систему, так и в wav-файл. Но он имеет и недостатки. Качество у него имеет оборотную сторону- малую скорость преобразования текста. Текст перед озвучкой надо обрабатывать- так как любые символы, кроме букв, цифр и знаков препинания приводят русский festival в ступор и некоторые комбинации дозволенных символов так же может вызвать ступор. Таких проблем нет у других движков и даже у Festival у других, не русских дикторов.

  4. RHVoice- русский голос с движком, реализованным на базе flite. Очень качественный мужской голос , интонированный и не уступающий профессиональным голосам, созданный Ольгой Яковлевой из фестивального голоса msu_ru_nsh_clunits с соответствующими доработками и свернутый с flite, что повысило его скорость преобразования текста(хотя и не дотягивает до ru_tts), а по качеству превосходит все другие разработки и лишен недостатков исходного голоса msu_ru_nsh_clunits и в ступор он не впадает ни при каких комбинациях входных символов, а не произносимые символы просто игнорирует.

Графические программы Linux

Kttsd, Jovie, KMouth и другие аналогичные программы в общем не очень удобны для целей чтения художественных произведений, да и кроме Кttsd не совсем совместимы с выбранными движками, а Kttsd только для KDE 3.x.

На SourceFofge я нашел проект "Голос", который пока не готов к работе, но он натолкнул меня на то, что я сам могу требуемый продукт сделать, т.к. все равно в QT4 на Qt-Creator я делаю всяческие утилиты для системного менеджмента, BackUp и т.д.

Так и появился данный проект и несколько его модификаций