Описание интерфейса проекта Menestrel, как стандартного для всех подпроектов


Введение

На данный момент существует 2 бетта-версии проекта: menestrel 0.1 и menestrel 0.2.

  1. menestrel 0.1 присутствует только в исходных текстах и реализованы не все функции. Текст для прочтения разбивается по абзацам, ограниченным переводом строки. Это не всегда удобно. Абзац м.б. очень большим, или каждая строка абзаца может быть ограничена переводом строки, что испортит произношение текста.

  2. menestrel 0.2 уже присутствует в полном виде, т.е.:

    Это практически рабочая версия, в которой реализованы практически все возможности, но только в Linux.

    Рабочий релиз будет считаться, когда появится и версия Windows.

Существует и первый релиз relise1.0, в котором реализован как Linux вариант программы, так и Windows вариант, с общими исходными текстами и исполнимыми модулями вместе с утилитами для обеих ОС


Дальнейшее описание программы будет по этой версии

Описание


Раз за основу взят движок Festival с русским голосом, то из-за его особенностей:

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


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


Описание программы начнем с описания главного экрана

На главном окне находится озвучиваемый текст.

1- кнопка, инициирующая озвучку текста с текущего положения.

2- кнопка, приостанавливающая озвучку. При этой кнопке нельзя перенести места начала следующего сеанса озвучки.

3- кнопка завершения сеанса озвучки. Во время действия этой кнопки возможно перенести начало озвучки следующего сеанса и все остальные действия.

4- кнопка установки закладки. Закладка устанавливается на начала последнего озвучиваемого сегмента. Если хочется поставить закладку в произвольной позиции надо остановить озвучку кнопкой 3, если она была включена, затем отметить мышкой необходимый участок текста и запусить озвучку кнопкой 1 и только она начнется, можно ставить закладку кнопкой 4, и закладка окажется на этот сегмент текста. Этой же кнопкой можно и удалять закладки, но об этом ниже.

5- кнопка перехода на закладку. Если нужно перепрыгнуть на отмеченный одной из закладок участок текста можно использовать эту кнопку.

6- кнопка сохранения сгенерированной звуковой дорожки озвучки текста для использования, например, в качестве звуковой книги в автомобильной магнитоле или компактном МР3- плейере. Но эта кнопка будет недоступна до тех пор, пока индикатор 11 не покажет 100% генерации звуковой дорожки.

7- кнопка создания текста. После нажатия этой кнопки- текстовое окно очищается, либо загружается сохраненный текст из указанного файла, и программа переходит в режим простейшего текстового редактора. Это необходимо м.б. если у вас нет необходимого текста в виде файла в читаемом программой формате, но его можно скопипастить из браузера или другого просмотрщика файлов, либо в других аналогичных случаях.

8-кнопка завершения создания текста. После нажатия этой кнопки все рабочие области (звуковой дорожки, закладок и др.) очищаются, формируются соответствующие файлы настроек для озвучивания текста и прекращается доступ к тексту для редактирования

9- кнопка открытия файла в разрешаемом формате. Если у Вас есть библиотека русских книг в текстовом, html, doc, odt или fb2 форматах, которые могут быть еще и зазипованными- эта кнопка для Вас. После открытия файла все подготавливается к произнесению и запрещено редактирование открытого текста. Если редактирование необходимо, то можно использовать кнопку создания на базе файла.

10- сохранение текста. Текст , видимый в окне, в таком же виде сохраняется в текстовом формате, в кодировке UTF-8. Это необходимо, если этот текст создан в программе, но создание еще не завершено. Либо у Вас есть для этого свои причины.

Что находится в пункте меню "Конфигурация"

Подпункт "Общая конфигурация" пункта меню "Конфигурация" выдает следующее окно:

Здесь можно обновить/ добавить-пункты в словарь ударений, который является общим для всех возможных текстов на этом ПК и этого пользователя. Чтобы обозначить ударение надо поставит + перед ударной гласной

Инструкция о языках озвучки дана в разбираемом окне


Подпункт "Выбор языка" пункта меню "Конфигурация" выдает следующее окно:



Подпункт "Знаки и темп" пункта меню "Конфигурация" выдает следующее окно:

Можно отметить, какие знаки надо произносить *_=+№$%. Они просто произносятся, например "звёздочка" и т.д.

Скобки, не зависимо от вида, произносятся "скобка открывается" и "скобка закрывается".

Ввиду того, что вопросительная и восклицательная интонация отсутствуют у движка, знаки ! и ? могут быть озвучены словами "воскл знак" и "вопр знак", чтобы можно было ориентироваться на звук в формате предложения.

Движок используется для установления темпа произнесения текста, и можно этот темп прослушать, воспользовавшись кнопкой теста.


Еще 2 скриншота, показывающих похожие окна при нажатии кнопки создания и открытия файла.

Создание:


Открытие файла:

Кнопка "..." показывает диалог открытия файла. Галки "формата файла" могут быть выставлены на основании расширения файла. Например, открытие файла gogol_vij.fb2.zip вызовет выбор формата .FB2 и галочку на "Архивированное архиватором ZIP". Во многих электронных библиотеках используется как раз этот формат, например в litres.ru.
Если текстовый файл (формат "Текстовый") не в UTF-8 кодировке, то в окне будет текст кракозяблами. Тогда можно попробовать открыть текст в других кодировках, или, если знаете в какой, то укажите.

Для открытия html файла используется lynx- терминальный браузер, который должен быть установлен из репозитария ОС.
Для открытия doc-файлов используется утилита antiword, которую я на всякий случай положил в релиз в архив UtilTool.zip и в релизный архив, с основной программой.
Для открытия odt-файлов используется shell- утилита antiodt, которую я на всякий случай положил в релиз в архив UtilTool.zip и в релизный архив, с основной программой
Для открытия fb2-файлов используется утилита xsltproc, из репозитариев ОС, с файлом настройки FB2_2_txt.xsl, который я на всякий случай положил в релиз в архив UtilTool.zip и в релизный архив, с основной программой



Теперь скриншоты на на кнопки закладок.

Поставить закладку:

Перейти на закладку:

Как видно, любую закладку можно не только ставить и переходить на закладку, но и в обоих окнах можно и удалять закладку.



На следующем скриншоте показано, как сохраняется звуковая дорожка:

Как видим можно сохранять в формате wav или mp3. Для сохранения в формате mp3 требуется, чтобы в ОС была установлена из репозитариев ОС утилита lame

Ввиду того, что в рабочей области программы звуковая дорожка хранится, как набор WAV- файлов в виде: 0.wav,1.wav,2.wav,... в область сохранения эти файлы переписываюся непосредственно или преобразованные в mp3 и к ним добавляется плэйлист с расширением m3u. Каждый wav-файл- это одно озвученное предложение

Почему я не преобразовал эти все файлы в один? Например, при помощи утилиты SoX?. Ввиду того, что их обычно на книгу несколько тысяч, это преобразование занимает гигантское время. А в МP3-плейер в таком случае можно перенести плэйлист, а звуковые переносить по частям, по мере их прослушивание, что более удобно, да и легче ориентироваться, где завершили, т.к. при остановке запоминается последний элемент плэйлиста, а не место в звуковом файле.



Ну и последний скриншот

показывающий, что при озвучивании, подсвечивается произносимое в данный момент предложение:

Если во время произнесения текста, или после любого вида остановки произнесения Вы просто закроете программу, то при следующем запуске программа продолжит генерацию звуковой дорожки с того же места, а произнесение текста, при нажатии соответствующей кнопки продолжится с точки, на которой было прервано воспроизведение в предыдущем сеансе.
Для воспроизведения звука с регулируемым темпом используется утилита ОС из репозитария SoX.



Заключение

Программа прошла стадию бетта и появилась релиз версия проекта menestrel, т.к. есть и Linux версия и Windows версия. Подпроекты MenestrelDaemon и Skomoroh полностью Линуксовые, при этом полностью функциональные. Проект MenestrelDaemon развиваться не будет, т.к. не оправдал возлагаемые на него надежды. Проект Skomoroh имеет 4 версии, где 3 из них- skomoroh0.1, skomoroh0.2 и skomoroh0.3 заточены на tts-движки ru_tts, eSpeak и RHVoice соответственно, а skomoroh1.0 универсальный, который может работать с любым движком, способным фенкционировать из коммандной строки.