Экспорт из Fieldworks в ELAN
В настоящее время существует программа на Java, написанная Томом Майерсом, с помощью которой можно экспортировать глоссированные тексты из программы Fieldworks Language Explorer (FLEx) в формат ELAN для последующей синхронизации со звуковыми/видеофайлами. Кроме того, идёт работа над встраиванием этого конвертера в ELAN в качестве одной из функций импорта.
Этапы конверсии
- Экспорт из FLEx в формат XML, подготовленный специально для конверсии в ELAN
- Конверсия из XML в EAF
- после чего нужно открыть файл в ELAN'е и сохранить, прежде чем работать с ним дальше
Необходимые программы
- Fieldworks Language Explorer (он же FLEx)
- XSL-конвертер для экспорта из FLEx в нужный вид XML (встраивается во FLEx) [скачать архив, 2 Kb]
- Собственно конвертер Flex2EAF (программа на Java) [скачать архив, 16 Kb]
- Java Runtime Environment (платформа для запуска программ на языке Java)
Установка
Экспорт из FLEx
- Скопировать файлы xml4eaf.xml и itemsFirst.xsl в папку
C:\Program Files\SIL\FieldWorks\Language Explorer\Export Templates\Interlinear [для Windows XP]
(это можно делать даже при работающем Филдворксе)
- После этого можно экспортировать из Филдворкса тексты, выбирая формат "Generic XML for conversion to EAF".
Конвертер Flex2EAF
- Завести папку, в которую положить файлы конвертора, например D:\Java\flex2eaf.
(В папке должно быть четыре файла: Flex2EAF.java, Flex2EAF.class, Flex2EAF$tierObject.class и Flex2EAF$itemObject.class).
- Добавить к переменной среды CLASSPATH путь к этой папке (см. ниже)
Java
- Если у вас не установлена Java (проверьте, есть ли в Панели управления пункт "Java Control Panel"), нужно её скачать и установить (http://www.java.com/ru/download/index.jsp)
- Установить системные переменные среды, чтобы Java знала, где лежат файлы:
- JRE_HOME = путь к папке, где установлена Ява
(напр. « C:\Program Files\Java\jre6 »)
- CLASSPATH = список путей через точку с запятой (если такая переменная уже есть, добавить нужное в конец):
- путь , состоящий из одной точки (« .; »)
- путь к папке с конвертером (см. ниже)
напр. « D:\Javas\flex2eaf »
Пример того, как может выглядеть всё вместе:
« .;D:\Javas\flex2eaf »
Переменные среды устанавливаются через Control Panel/System/Advanced/Environment variables/System variables. Для того, чтобы они обновились в системе, нужно перезагрузиться. Можно не устанавливать системные переменные, а задавать пути при каждом запуске программы.
Запуск конвертера Flex2EAF
Необходимые файлы
- Экспортированный из FLEx текст в XML (*.xml)
- Файл со звуком (*.wav) или видео (*.mpg). В принципе можно вписать какое угодно имя файла, а потом при открытии готового файла в ELAN'е сказать, что можно открыть и без звука/видео.
В результате должен получиться файл с расширением *.eaf.
Собственно запуск
Происходит из командной строки.
Нужно знать, хотя бы приблизительно, реальную (или желаемую) длительность файла в секундах, поскольку конвертер синхронизирует текст со звуком исходя из длительности, которая ему сообщается в параметрах (делит общую длительность на равные части по количеству предложений в тексте). Подгонять вручную придется всё равно, но лучше облегчить себе работу.
Если нужно указать путь, а не только имя, нужно взять его в кавычки.
При запуске Flex2EAF указываются следующие параметры (для получения данной подсказки запустите java Flex2EAF без параметров):
usage: java Flex2EAF flexFile.xml [timeInMSec [mediaFile [noSynch [renamings [showDebug]]]]]
e.g.: java Flex2EAF khinalug.xml 37000 khinalug.mpg word word-txt-en:word,word-txt-ru:word true
which uses renaming to merge two tiers into the single tier 'word' and shows debugging output
or : java Flex2EAF khinalug.xml
which defaults to 300000 msec, i.e. five minutes and elan-example1.mpg
То есть, короткий вариант команды
java Flex2EAF khinalug.xml
создаст файл khinalug.eaf длительностью 5 минут, а в качестве основного медиафайла будет указан elan-example1.mpg.
Развернутый вариант команды
java Flex2EAF khinalug.xml 37000 khinalug.mpg word word-txt-en:word,word-txt-ru:word
задаёт:
длительность записи 37 секунд;
видеофайл khinalug.mpg;
слои ниже слоя word (т.е. слова и морфемы) не синхронизируются;
слои word-txt-en и word-txt-ru сливаются в один слой word.
Опция, позволяющая два изначально отдельных слоя слить в один, полезна, например, чтобы объединить словесную часть текста и пунктуацию, которые в Филдворксе попадают в разные слои. Названия этих слоев зависят от языковых настроек проекта FLEx — если конвертировать не хиналугские тексты или если поменять настройки в Филдворксе, названия тоже поменяются. Пример команды, сливающей слои word-punct-kjj__LING и word-txt-kjj__LING в один слой под названием word-comb:
java Flex2EAF text1.xml 180000 xin-text1.wav word word-punct-kjj__LING:word-comb,word-txt-kjj__LING:word-comb > xin-text1.eaf
Удобно заготовить bat-файл (назовем его fe.bat), например, с таким содержанием:
java Flex2EAF %1 %2 %3 word word-punct-kjj__LING:word-comb,word-txt-kjj__LING:word-comb > %4
Ему нужно давать четыре аргумента: имя исходного файла, длительность звука/видео, имя звукового/видеофайла и имя конечного файла (в Total Commander'e или в FAR'е имя файла вставляется в командную строку нажатием Ctrl+Enter). Запуск из командной строки будет выглядеть так:
fe text1.xml 180000 xin-text1.wav xin-text1.eaf
Можно еще более облегчить себе задачу, если добиться того, чтобы у всех этих файлов различалось только расширение. Тогда bat-файл будет выглядеть так:
java Flex2EAF %1.xml %2 %1.wav > %1.eaf
и ему нужно будет давать только имя файла (без расширения) и длительность:
fe text1 180000