LangueDOC
Главная | Архивы | Языки | ТехПомощь | Фильм | Спецкурсы | Люди | Публикации | ENGLISH
 

Экспорт из Fieldworks в ELAN

В настоящее время существует программа на Java, написанная Томом Майерсом, с помощью которой можно экспортировать глоссированные тексты из программы Fieldworks Language Explorer (FLEx) в формат ELAN для последующей синхронизации со звуковыми/видеофайлами. Кроме того, идёт работа над встраиванием этого конвертера в ELAN в качестве одной из функций импорта.

Этапы конверсии

  • Экспорт из FLEx в формат XML, подготовленный специально для конверсии в ELAN
  • Конверсия из XML в EAF
  • после чего нужно открыть файл в ELAN'е и сохранить, прежде чем работать с ним дальше

Необходимые программы

  1. Fieldworks Language Explorer (он же FLEx)
  2. XSL-конвертер для экспорта из FLEx в нужный вид XML (встраивается во FLEx) [скачать архив, 2 Kb]
  3. Собственно конвертер Flex2EAF (программа на Java) [скачать архив, 16 Kb]
  4. 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