Aeneasは、Python/Cライブラリであり、オーディオとテキストを自動的に同期するためのツールのセットです(別名強制アライメント)。
Aeneasは、テキストフラグメントのリストとテキストのナレーションを含むオーディオファイルの間に同期マップを自動的に生成します。コンピューターサイエンスでは、このタスクは(自動的にA)強制アライメントとして知られています。
たとえば、このテキストファイルとこのオーディオファイルが与えられた場合、 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は、 Python 2.7とPython 3.5を使用して、 Debian 64bitで開発およびテストされています。これは、現在サポートされているプラットフォームです。それにもかかわらず、 Aeneasは、他のLinux分布、Mac OS X、およびWindowsで作業することが確認されています。詳細については、プラットフォームファイルを参照してください。
OSにネイティブにAeneasをインストールすることが困難であることが判明した場合、Aeneas-Vagrantを使用することを強くお勧めします。Aeneas-Vagrantは、VirtualBoxおよびVagrantの下で実行される仮想化されたDebian画像内にAeneasを提供し、最新のOS(Linux、Mac OS X、Windows)にインストールできます。
Mac OS XおよびWindowsではオールインワンインストーラーが利用でき、DebベースのLinux Distributions(Debian、Ubuntu)のBashスクリプトがこのリポジトリに提供されています。 VirtualBox+Vagrant Virtual Machineをダウンロードすることもできます。さまざまなオペレーティングシステムの詳細なステップバイステップインストール手順については、インストールファイルを参照してください。
一般的なOSに依存しない手順は簡単です:
Python(2.7.x Preferred)、FFMPEG、およびESPEAKをインストールします
次の実行可能ファイルがシェルから呼び出されることを確認してください: espeak 、 ffmpeg 、 ffprobe 、 pip 、およびpython
最初にnumpy pipでインストールし、次にaeneas (この注文が重要です):
pip install numpy
pip install aeneasAeneasを正しく取り付けたかどうかを確認するには、実行してください。
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同期マップmap.jsonをペア( audio.mp3 、 text.txt in plainテキスト形式)を計算するには、実行できます。
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 f001のようなid属性によってマークされたフラグメントを含む)、実行できます。
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ご覧のとおり、3番目の引数(構成文字列)は、I/O形式を制御するパラメーターとタスクの処理オプションを指定します。詳細については、ドキュメントを参照してください。
処理するタスクがいくつかある場合は、ジョブコンテナを作成して処理することができます。
python -m aeneas.tools.execute_job job.zip output_directory file job.zipは、 config.txtまたはconfig.xml configurationファイルを含める必要があり、入力資産を解析し、出力同期マップファイルをフォーマットするために必要なすべての情報をAeneasに提供します。詳細については、ドキュメントを参照してください。
ドキュメントには、組み込みのコマンドラインツールの使用方法を説明する強く提案されたチュートリアルが含まれています。
parsed 、 plain 、 subtitles 、またはunparsed (XML)形式のテキストファイルを入力しますmplainおよびmunparsed (xml)形式のマルチレベル入力テキストファイルidおよびclass属性を使用してXML(XHTML)ファイルからのテキスト抽出ffmpegが読み取るすべてのものfinetuneasプロジェクト)かなりの数のユーザーがAENEASを実行して、ワードレベルでオーディオとテキストを調整します(つまり、各フラグメントは単語です)。 Aeneasは単語レベルのアラインメントを念頭に置いて設計されておらず、結果はASRベースのASRモデルを持つ言語の強制アライナーより劣る可能性がありますが、 Aeneasは単語レベルでのアライメントの品質を改善するためのいくつかのオプションを提供します。
aeneas.tools.execute_taskコマンドラインツールを使用する場合は、mfcc nonsspeechマスキングなどを有効にするために--presets-wordスイッチを追加できます。たとえば
$ 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 General Public Licenseバージョン3の条件の下でリリースされます。詳細については、ライセンスファイルを参照してください。
Aeneasに含まれるサードパーティのコードとファイルのライセンスは、ライセンスディレクトリにあります。
このプロジェクトの作成において、コピーの権利は損なわれませんでした。
2015年7月:Michele Gianellaが境界調整コードの開発をgeneしみなくサポートしました(v1.0.4)
2015年8月:Michele GianellaがMFCC/DTWコードのポートをC(v1.1.0)に部分的に後援しました
2015年9月:西アフリカの友人が部分的にヘッド/テール検出コードの開発を後援しました(v1.2.0)
2015年10月:匿名の寄付が「YouTube Downloader」オプション(v1.3.0)の開発を後援しました
2016年4月:Fruch FoundationがV1.5.0の開発と文書を親切に後援しました
2016年12月:Centro Internazionale Del Libro Parlato "Adriano Sernagiotto"(Feltre、Italy)は、v1.7シリーズの開発を部分的に後援しました
Aeneasの開発をサポートしますか?
私はスポンサーシップを受け入れます
お気軽にご連絡ください。
バグが見つかったと思われる場合、または機能リクエストがある場合は、GitHub Issue Trackerを使用して送信してください。
Aeneasの使用について質問したい場合は、最良のオプションはメーリングリストにメールを送信することにあります。
最後に、コードの貢献は大歓迎です!ブランチポリシーとコードスタイルの詳細については、コード貢献ガイドを参照してください。
MFCCSとDTWの使用を提案し、オーディオとテキストを調整するための最初の実験コードを共同開発したNicola Montecchioに感謝します。
ReadBeyond SyncのAPIおよびWebアプリケーションを開発したPaolo Bertasiは、非同期使用のためにこのパッケージの構造を形作るのに役立ちました。
クリス・ハバードは、 debian/ubuntu .debとしてAeneasをパッケージ化するためのファイルを準備しました。
Daniel Bairは、 Aeneasとその依存関係をMac OS Xに設置するためのbrew式を準備しました。
ダニエル・ベア、クリス・ハバード、リチャード・マージツは、 Mac OS XとWindowsのインストーラーをパッケージ化しました。
Firat Ozdemirは、ブラウザのファインチューニング同期マップのためにfinetuneas HTML/JSコードに寄与しました。
ウィレムファンデルウォルトは、テキストグリッド形式の同期マップを出力するためにコードスニペットを提供しました。
クリス・ヴォーンはMacOS TTSラッパーに貢献しました。
すべてのMighty Githubの寄稿者、およびGoogleグループのメンバー。