, ,
Программное обеспечение
для формирования речевых баз данных
Аннотация
В статье приводится функциональное описание программных средств, позволяющих автоматизировать технологические процессы построения крупномасштабных речевых баз данных, изложенные в [1].
Работа выполнена при поддержке РФФИ (проект № ).
Процесс формирования речевых баз данных представляет собой последовательность определенных технологических этапов. В работе [1] приводится описание таких этапов. Как видно из этого описания, большинство их, особенно при формировании речевых баз данных большого объема, невозможно выполнить без соответствующей автоматизированной поддержки. Естественно, что программные средства, реализующие такую поддержку, могут быть различны. Однако наш опыт построения крупномасштабных речевых баз показал необходимость автоматизации решения определенного круга задач, которая может быть реализована с помощью некоторого набора программ. Ниже приводится функциональное описание этих программ.
Программа для записи дикторов и формирования речевого корпуса. Программа, позволяющая автоматизировать этап записи дикторов и формирования элементов речевого корпуса, выполняет несколько функций.
Одна из них – это регистрация очередного диктора, который должен наговаривать предложения из подготовленного для этого диктора набора предложений.
Заполнение регистрационных сведений о дикторах производится в специальном окне информационной карточки диктора. В этом окне в соответствующих полях можно указать следующую информацию:
- фамилию и имя диктора;
- возраст;
- место рождения;
- место жительства;
- тип произношения;
- пол;
- уровень образования;
- тип звуковой карты, установленной на компьютере;
- модель микрофона, с помощью которого производится запись.
Значения некоторых из этих признаков можно выбрать и с помощью соответствующего меню.
Кроме того, можно указать двухсимвольный идентификатор записи, который характеризует некоторую группу дикторов или рабочее место записи дикторов, в случае, когда их запись производится с разных рабочих мест, и трехзначный номер диктора. Из двух последних элементов и предшествующего ему символа, идентифицирующего пол диктора (“M” – мужчина, “F” – женщина), формируется 6-значный идентификатор диктора. Если диктор с таким номером уже был зарегистрирован ранее, то программа после дополнительного вопроса либо регистрирует под указанным номером нового диктора (при этом регистрация прежнего диктора аннулируется) либо присваивает новому диктору номер, следующий за максимальным из номеров уже зарегистрированных дикторов. Сведения о зарегистрированных дикторах заносятся в специальный файл регистрации дикторов.
Пользователь имеет возможность отредактировать информацию об уже зарегистрированном ранее дикторе, выбрав его фамилию в меню дикторов.
Вторая функция этой программы заключается в автоматическом отборе из заранее подготовленного множества предложений некоторого набора предложений, предназначенного для произнесения зарегистрированным диктором. Эти наборы формируются по следующей схеме.
Каждый набор состоит из двух частей: постоянной части, общей для всех дикторов, и переменной части. В частности, какая-либо из этих частей может быть пуста. Количество предложений в переменной части предполагается одинаковым для всех дикторов. Все множество предложений, предназначенных для формирования переменных частей, делится на равные порции, содержащие столько предложений, сколько должно быть в переменной части, и для каждого диктора выделяется очередная порция. Когда все предложения из множества исчерпаны, процедура распределения порций циклически повторяется. Приведем более точное описание этой процедуры.
Пусть N - количество всех предложений, подготовленных для переменных частей. Обозначим через
, где 1≤i≤N, последовательность этих предложений. Пусть M - количество дикторов, а L – количество предложений в переменной части. Рассмотрим новую последовательность предложений
, где 1≤ j ≤ M∙L, образованную из S по формуле
при всех j=i+r∙N для r=0,1,2,3,….
Тогда для каждого k = 1,2,3,…,M в переменную часть для k-го диктора включаются те предложения из последовательности
, для которых выполнено условие 1+(k-1)∙L ≤ j ≤ k∙L.
Нетрудно видеть, что, если потребовать, чтобы переменные части для двух разных дикторов, полученные с помощью этой процедуры, либо не пересекались либо совпадали, то число L должно быть делителем числа N.
Для работы программы необходимо, чтобы файлы с текстами предложений и их фонетическими транскрипциями были уже подготовлены и размещены в директориях, соответствующих частям речевого корпуса.
Предполагается, что сами тексты и соответствующие им фонетические транскрипции расположены в разных файлах (с одинаковым именем, но различными расширениями). В разных файлах находятся также тексты для постоянных и переменных частей. При этом отсутствие одного или другого файла означает, что в речевой базе соответствующие части (постоянные или переменные) будут отсутствовать для всех дикторов. Если заранее известно, что количество предложений, подготовленных для переменных частей, кратно числу дикторов, то может быть реализован упрощенный вариант программы, который предполагает, что соответствующие дикторам порции предложений, на которые разбито это множество, подготовлены заранее и размещены в отдельных файлах.
Используя описанную выше схему, при регистрации диктора программа создает в составе выбранного раздела речевой базы директорию, имя которой совпадает с идентификатором диктора. В этой директории она формирует файл с множеством предложений, которые должен произнести данный диктор, и файл с множеством их ожидаемых (канонических) фонетических транскрипций. Если в директории такие файлы уже существуют, например, при повторной регистрации того же диктора, то программа делает запрос об их перезаписи.
Третья функция, которая осуществляется с помощью этой программы, - процедура формирования речевых фрагментов и записи их в базу данных в процессе произнесения дикторами подготовленных предложений. Интерфейс с пользователем осуществляется через окно записи. В его верхней части выводится очередное предложение, которое должен прочитать диктор, а в нижней части расположена информационная панель и управляющие кнопки.
Информационная панель содержит текущую информацию (фамилию и имя диктора, директорию, содержащую текущую часть речевого корпуса, относительный номер предложения в файле, содержащем тексты, идентификатор этого предложения).
Чтобы записать текущее предложение, диктор должен произнести его текст, выведенный на экран в окне записи. Начало и конец записи отмечаются нажатием специальных кнопок в окне записи. В результате этих действий создается файл, содержащий звуковую волну (wav-файл), информационный файл (wfi-файл), а в верхней части окна появляется текст очередного предложения. При этом на информационную панель выводятся следующие числовые характеристики функции звуковой волны:
- максимальное значение,
- минимальное значение,
- среднее арифметическое всех ее значений,
- среднее арифметическое абсолютных величин всех ее значений.
Если абсолютная величина максимального или минимального значений выходит за границы интервала, установленного в параметрах настройки в “ini”-файле, то появляется сообщение о том, что запись неудовлетворительна. В этом случае запись предложения нужно повторить.
В информационный файл записывается вся информация, которая была внесена в информационную карточку данного диктора, а также текст произнесенного предложения, его ожидаемая транскрипция и дата произнесения.
Текущее предложение можно прослушать. При этом величины числовых характеристик звуковой волны также выводятся на информационную панель.
С помощью управляющих кнопок окна записи можно переходить от текущего предложения к следующему, а также сразу перейти к предложению, относительный номер которого нужно набрать в соответствующем поле.
Программа верификации речевых фрагментов. Эта программа предназначена для экспертов-фонетистов, которые осуществляют верификацию актуального произнесения предложений дикторами и его соответствия каноническому (ожидаемому) произнесению, записанному в информационные файлы при формировании речевых фрагментов.
Для работы с программой в ее интерфейсном окне указываются:
- фамилия эксперта;
- директория, в которой находятся проверяемые wav-файлы;
- директория, содержащая соответствующие этим wav-файлам информационные файлы;
- директория, в которой должны быть сохранены информационные файлы после их корректировки.
После установки указанных параметров вызывается окно верификации, в котором можно производить просмотр информационных файлов из указанной директории. В нижней части этого окна имеется информационная панель, на которой представлена текущая информация (фамилия и имя диктора, его идентификатор, имя части речевого корпуса, относительный номер текущего предложения, текст которого выведен в верхней части окна, и полный путь к wav-файлу, представляющему звуковой образ этого предложения).
Кроме того, в окне верификации представлена ожидаемая фонетическая транскрипция произнесенного предложения и реальная транскрипция, которая должна ему соответствовать. В первоначальный момент содержимое этих двух полей совпадает, а затем, прослушивая произнесенный текст, эксперт может вносить необходимые изменения в поле реальной транскрипции.
Эксперт может прослушивать предложение или его отдельные фрагменты, используя встроенный в программу звуковой редактор или любой другой звуковой редактор, на который эту программу можно предварительно настроить.
С помощью кнопок, выведенных в окно верификации, осуществляется переход от одного предложения к другому, а также переход к предложению с заданным номером, который указывается в соответствующем поле. Отметим, что если содержимое поля изменялось, то при таком переходе во избежание потери произведенных изменений выдается запрос о необходимости сохранения этого поля.
В случае внесения изменений в поле реальной транскрипции эксперт может записать в специальном поле соответствующий комментарий по поводу этих изменений.
Для того чтобы облегчить обработку результатов верификации, экспертам рекомендовалось начинать комментарий с символа «!», если они обнаружили ошибку типа «отсечение» (см. [1]) или другой технический брак, допущенный при записи диктора, и с символа «?», если встретили ошибку типа «искажение».
Программа верификации пополняет каждый информационный файл следующими полями:
- фамилия эксперта;
- дата выполнения верификации;
- актуальная (реальная) транскрипция произнесенного предложения, отверифицированная экспертом;
- строка комментария.
Помимо комментариев, относящихся к отдельному речевому фрагменту, эксперт имеет возможность изложить общие соображения о характере произношения данного диктора в окне общего комментария и сохранить этот общий комментарий в директории, в которой сохраняются информационные файлы после их корректировки.
Изменения, вносимые экспертом в поле реальной транскрипции, должны соответствовать списку допустимых фонем, содержащемуся в специальном файле, который должен быть подготовлен заранее. Если внесенные фонемы не соответствуют этому списку, то при попытке сохранения информации выдается список всех неверных фонем.
Для удобства экспертов выполнение программы организовано таким образом, что при выходе из нее или при аварийном завершении запоминается номер последнего предложения, которое рассматривал эксперт. В этом случае при новом запуске программа начнет работу с того места, на котором закончила ее в предыдущий раз.
Программа обработки результатов верификации. Эта программа обрабатывает информационные файлы после верификации фрагментов речевого корпуса экспертами и предназначена, главным образом, для создания протоколов различных типов с текстами комментариев экспертов, содержащихся в информационных файлах. Какие именно протоколы должны формироваться, зависит от технологии самого процесса верификации и соответствующих соглашений о формате заполнения экспертами полей комментариев. Рассмотрим, например, описанный выше случай, когда при построении одной из речевых баз эксперты должны были отмечать установкой в начале поля комментария символа «!» те речевые фрагменты, которые были усечены при произнесении предложений, и установкой символа «?» - речевые фрагменты, которые были каким-либо образом искажены.
Используя эти установки, программа создает набор протоколов с текстами комментариев в информационных файлах указанной при настройке директории, включая все ее поддиректории. Этот набор включает в себя:
- протокол с текстами комментариев, начинающихся с символа «!»;
- протокол с текстами комментариев, начинающихся с символа «?»;
- протокол с текстами всех комментариев;
- протокол с текстами всех комментариев, начинающихся с любого символа, кроме символов «!» и «?».
Таким образом, набор этих протоколов позволяет сгруппировать комментарии ко всем речевым фрагментам, к усеченным фрагментам, к искаженным фрагментам, а также ко всем правильным фрагментам, не имеющим ни усечений ни искажений.
Кроме того, эта же программа формирует во всех директориях речевого корпуса, содержащих речевые фрагменты, принадлежащие соответствующему диктору, файлы с текстами предложений и с различными видами их транскрипционных представлений (ожидаемым и реальным). Причем эти файлы содержат те и только те предложения, которые соответствуют фрагментам, входящим в данную директорию. Имя каждого из этих файлов совпадает с идентификатором диктора, а различаются эти имена лишь своими расширениями.
Программы корректировки полей информационного файла. Во время регистрации дикторов в процессе заполнения их информационных карт возможны ошибки, которые в дальнейшем переходят в содержимое информационных файлов речевых фрагментов. При этом такие ошибки тиражируются по всем информационным файлам данного диктора. Для исправления массовых ошибок такого рода полезно иметь специальную программу, которая позволяет пользователю вносить изменения в некоторое конкретное поле всех информационных файлов одного диктора.
В интерфейсном меню программы можно выбрать директорию, в которой находятся все элементы речевого корпуса, принадлежащие данному диктору. Затем нужно выбрать имя соответствующего поля, в которое мы хотим внести исправление, и исправить текст, содержащийся в нем. В результате работы программы это исправление будет внесено во все информационные файлы, находящиеся в выбранной директории. Предварительно программа просит подтвердить необходимость выполнения указанной операции исправления.
Другой тип массовых ошибок может возникнуть в том случае, когда при подготовке наборов предложений был неверно введен текст некоторого предложения или его транскрипционного представления. Такая ошибка при формировании базы данных тиражируется в соответствующих полях информационных файлов всех фрагментов речевой базы, которые это предложение представляют.
Для исправления таких ошибок может быть использована программа, которая позволяет заменять текст предложения или его транскрипционного представления сразу во всех информационных и других файлах речевой базы указанной директории, содержащих это предложение.
При использовании этой программы надо в окне ее интерфейса выбрать директорию, внутри которой (включая все ее поддиректории) требуется произвести замену ошибочной информации. Кроме того, необходимо указать тип изменяемой информации (текст или транскрипция) и идентификационный номер предложения. Соответствующая этому номеру и типу информация появляется в поле, расположенном в центральной части окна программы. Если требуется, в него можно внести необходимые изменения, и новое содержимое окна программа запишет во все информационные и другие файлы везде, где это содержимое встречается внутри выбранной выше директории.
Эта программа допускает возможность работы и в другом режиме, при котором можно сразу внести исправления в указанное множество различных предложений. Для этого надо предварительно подготовить файл, в который должны быть записаны исправленные тексты предложений или их транскрипций вместе с идентифицирующими номерами предложений. Тогда в интерфейсном окне вместо выбора одного предложения надо выбрать этот файл и описанная ранее процедура замены ошибочной информации будет выполнена для всех предложений из этого файла.
Программы подсчета количества вхождений монофонов и трифонов. С целью оценки фонетической представительности текстового материала, подготовленного для формирования речевой базы данных, могут быть полезны программы, которые подсчитывают количество вхождений монофонов или, соответственно, трифонов в ожидаемую или актуальную транскрипцию предложений по всем информационным файлам указанной директории и всех ее поддиректорий.
В интерфейсном окне каждой из этих программ можно выбрать директорию, для которой необходимо произвести подсчет, а также указать, для какой именно транскрипции, ожидаемой или актуальной, следует его производить.
Для работы программы необходимо наличие файла, содержащего список всех допустимых фонем. Полученные по завершении работы программы файлы с результатами упорядочены. При этом файл для трифонов упорядочен в порядке убывания количества их вхождений, а файл с монофонами упорядочен так же, как файл со списком всех допустимых фонем.
Литература
1. , , Строкин формирования речевых баз данных. // В настоящем сборнике.


