AENEAS - это библиотека Python/C и набор инструментов для автоматической синхронизации аудио и текста (он же принудительный выравнивание).
AENEAS автоматически генерирует карту синхронизации между списком фрагментов текста и аудиофайлом, содержащим повествование текста. В информатике эта задача известна как (автоматически вычисление а) принудительного выравнивания .
Например, учитывая этот текстовый файл и этот аудиофайл, Aeneas определяет для каждого фрагмента соответствующий интервал времени в аудиофайле:
1 => [00:00:00.000, 00:00:02.640]
From fairest creatures we desire increase, => [00:00:02.640, 00:00:05.880]
That thereby beauty's rose might never die, => [00:00:05.880, 00:00:09.240]
But as the riper should by time decease, => [00:00:09.240, 00:00:11.920]
His tender heir might bear his memory: => [00:00:11.920, 00:00:15.280]
But thou contracted to thine own bright eyes, => [00:00:15.280, 00:00:18.800]
Feed'st thy light's flame with self-substantial fuel, => [00:00:18.800, 00:00:22.760]
Making a famine where abundance lies, => [00:00:22.760, 00:00:25.680]
Thy self thy foe, to thy sweet self too cruel: => [00:00:25.680, 00:00:31.240]
Thou that art now the world's fresh ornament, => [00:00:31.240, 00:00:34.400]
And only herald to the gaudy spring, => [00:00:34.400, 00:00:36.920]
Within thine own bud buriest thy content, => [00:00:36.920, 00:00:40.640]
And tender churl mak'st waste in niggarding: => [00:00:40.640, 00:00:43.640]
Pity the world, or else this glutton be, => [00:00:43.640, 00:00:48.080]
To eat the world's due, by the grave and thee. => [00:00:48.080, 00:00:53.240]

Эта карта синхронизации может быть выведена для подачи в несколько форматов, в зависимости от его приложения:
BeautifulSoup4 , lxml и numpyAENEAS был разработан и протестирован на Debian 64Bit , с Python 2.7 и Python 3.5 , которые на данный момент являются единственными поддерживаемыми платформами . Тем не менее, AENEAS было подтверждено, что работает над другими дистрибутивами Linux, Mac OS X и Windows. Смотрите файл платформ для деталей.
Если установка AENEAS , изначально на вашу ОС, оказывается трудной, вам настоятельно рекомендуется использовать Aeneas-Vagrant, который предоставляет AENEAS внутри виртуализированного изображения Debian, работающего под VirtualBox и Vagrant, который может быть установлен на любой современной ОС (Linux, Mac OS X, Windows).
В этом хранилища представлены все установщики для одного в одном для Mac OS X и Windows, а в этом хранилище представлен сценарий Bash для Deb Linux Distributions (Debian, Ubuntu). Также можно загрузить виртуальную машину VirtualBox+Vagrant. Пожалуйста, смотрите файл установки для подробных пошаговых процедур установки для различных операционных систем.
Общая ОС-независимая процедура проста:
Установите Python (2.7.x Preferred), FFMPEG и ESPEAK
Убедитесь, что следующие исполняемые файлы могут быть вызваны из вашей оболочки : espeak , ffmpeg , ffprobe , pip и python
Сначала установите numpy с pip , а затем aeneas (этот заказ важен):
pip install numpy
pip install aeneasЧтобы проверить, правильно ли вы установили AENEAS , запустите:
python -m aeneas.diagnosticsЗапустите без аргументов, чтобы получить сообщение об использовании :
python -m aeneas.tools.execute_task
python -m aeneas.tools.execute_jobВы также можете получить список живых примеров , которые вы можете немедленно запустить на своей машине благодаря включенным файлам:
python -m aeneas.tools.execute_task --examples
python -m aeneas.tools.execute_task --examples-all text.txt вычислить карту синхронизации map.json audio.mp3
python -m aeneas.tools.execute_task
audio.mp3
text.txt
" task_language=eng|os_task_file_format=json|is_text_type=plain "
map.json (Команда была разделена на строки с для визуальной ясности; в производстве вы можете иметь всю команду на одной строке и/или вы можете использовать переменные оболочки.)
Для вычисления карты карты синхронизации map.smil для пары ( audio.mp3 , page.xhtml, содержащий фрагменты, отмеченные атрибутами id , таких как f001 ), вы можете запустить:
python -m aeneas.tools.execute_task
audio.mp3
page.xhtml
" task_language=eng|os_task_file_format=smil|os_task_file_smil_audio_ref=audio.mp3|os_task_file_smil_page_ref=page.xhtml|is_text_type=unparsed|is_text_unparsed_id_regex=f[0-9]+|is_text_unparsed_id_sort=numeric "
map.smilКак вы можете видеть, третий аргумент ( строка конфигурации ) указывает параметры, управляющие форматами ввода/вывода и параметры обработки для задачи. Проконсультируйтесь с документацией для деталей.
Если у вас есть несколько задач для обработки, вы можете создать контейнер для работы для их обработки:
python -m aeneas.tools.execute_job job.zip output_directory File job.zip должен содержать файл конфигурации config.txt или config.xml , предоставляя AENEAS всю информацию, необходимую для анализа входных активов и форматирования файлов карты выходных синхронизации. Проконсультируйтесь с документацией для деталей.
Документация содержит очень предлагаемый учебник, в котором объясняется, как использовать встроенные инструменты командной строки.
parsed , plain , subtitles или unparsed (XML)mplain и munparsed (XML)id и атрибутов classffmpegfinetuneas Project)Значительное количество пользователей запускает AENEAS для выравнивания аудио и текста на уровне слов (то есть каждый фрагмент-это слово). Несмотря на то, что AENEAS не была разработана с учетом выравнивания уровня слов, и результаты могут быть уступают на основе ASR, основанных на ASR для языков с хорошими моделями ASR, AENEAS предлагает некоторые варианты для улучшения качества выравнивания на уровне слов:
Если вы используете инструмент командной строки aeneas.tools.execute_task , вы можете добавить переключатель --presets-word чтобы включить маскирование MFCC, например:
$ python -m aeneas.tools.execute_task --example-words --presets-word
$ python -m aeneas.tools.execute_task --example-words-multilevel --presets-word Если вы используете AENEAS в качестве библиотеки, просто установите соответствующие параметры RuntimeConfiguration . Пожалуйста, смотрите учебник командной строки для получения подробной информации.
AENEAS выпускается в соответствии с условиями общей общедоступной лицензии GNU Affero. Версия 3. Подробнее см. Файл лицензии.
Лицензии для стороннего кода и файлов, включенных в Aeneas, можно найти в каталоге лицензий.
Права на копию не пострадали при создании этого проекта.
Июль 2015 : Мишель Джанелла щедро поддержал разработку кода корректировки границы (v1.0.4)
Август 2015 : Мишель Джанелла частично спонсировал порт кода MFCC/DTW в C (v1.1.0)
Сентябрь 2015 : друзья в Западной Африке частично спонсировали разработку кода обнаружения головы/хвоста (v1.2.0)
Октябрь 2015 : анонимное пожертвование спонсировало разработку опции «YouTube Downloader» (v1.3.0)
Апрель 2016 : Фонд Fruch любезно спонсировал разработку и документацию V1.5.0
Декабрь 2016 : Centro Internazionale Del Libro Parrota "Adriano Sernagiotto" (Фелтре, Италия) частично спонсировал развитие серии V1.7
Хотели бы вы поддержать развитие AENEAS ?
Я принимаю спонсорство
Не стесняйтесь связаться.
Если вы думаете, что нашли ошибку или у вас есть запрос функции, используйте трекер выпуска GitHub, чтобы отправить ее.
Если вы хотите задать вопрос об использовании AENEAS , ваш лучший вариант состоит в том, чтобы отправить электронное письмо в список рассылки.
Наконец, взносы кода приветствуются! Пожалуйста, обратитесь к Руководству по взносу кода для получения подробной информации о политиках филиала и стиле кода, который нужно следовать.
Большое спасибо Николе Монтеккио , которая предложила использовать MFCCS и DTW, и совместно разработал первый экспериментальный код для выравнивания аудио и текста.
Паоло Бертаси , который разработал API и веб -приложение для синхронизации ReadBeyond, помог сформировать структуру этого пакета для его асинхронного использования.
Крис Хаббард подготовил файлы для упаковки AENEAS как Debian/Ubuntu .deb .
Даниэль Бэйр подготовил формулу brew для установки Aeneas и его зависимости от Mac OS X.
Даниэль Бэйр , Крис Хаббард и Ричард Маргеттс упаковали установщики для Mac OS X и Windows.
Firat Ozdemir внес вклад в код finetuneas HTML/JS для карт синхронизации тонкой настройки в браузере.
Виллем Ван дер Уолт внес вклад в фрагмент кода для вывода карты синхронизации в формате TextGrid.
Крис Вон внес вклад в обертку Macos TTS.
Все могущественные участники GitHub и члены Google Group.