Aeneas ist eine Python/C -Bibliothek und eine Reihe von Tools zur automatischen Synchronisierung von Audio und Text (auch als erzwungene Ausrichtung).
Aeneas generiert automatisch eine Synchronisierungskarte zwischen einer Liste von Textfragmenten und einer Audiodatei, die die Erzählung des Textes enthält. In der Informatik wird diese Aufgabe als (automatisch berechnet a) erzwungene Ausrichtung bezeichnet.
Angesichts dieser Textdatei und dieser Audiodatei bestimmt Aeneas für jedes Fragment das entsprechende Zeitintervall in der Audio -Datei:
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]

Diese Synchronisationskarte kann je nach Anwendung in verschiedenen Formaten in Datei ausgegeben werden:
BeautifulSoup4 , lxml und numpyAeneas wurde auf Debian 64bit entwickelt und getestet, mit Python 2.7 und Python 3.5 , die derzeit die einzigen unterstützten Plattformen sind. Dennoch wurde Aeneas bestätigt, an anderen Linux -Verteilungen, Mac OS X und Windows zu arbeiten. Weitere Informationen finden Sie in der Datei der Plattformdatei.
Wenn sich die Installation von Aeneas nativ auf Ihrem Betriebssystem als schwierig erweist, werden Sie nachdrücklich empfohlen, Aeneas-Vagrant zu verwenden, das Aeneas in einem virtualisierten Debian-Bild liefert, das unter VirtualBox und Vagrant ausgeführt wird und auf jedem modernen Betriebssystem (Linux, Mac OS X, Windows) installiert werden kann.
All-in-One-Installateure sind für Mac OS X und Windows verfügbar, und in diesem Repository finden Sie ein Bash-Skript für DEB-basierte Linux-Verteilungen (Debian, Ubuntu). Es ist auch möglich, eine virtuelle (Vagrant Virtual Machine "herunterzuladen. In der Installationsdatei finden Sie eine detaillierte, schrittweise Installationsverfahren für verschiedene Betriebssysteme.
Das generische OS-unabhängige Verfahren ist einfach:
Installieren Sie Python (2.7.x bevorzugt), ffmpeg und espeak
Stellen Sie sicher, dass die folgenden ausführbaren Funktionen von Ihrer Shell aufgerufen werden können: espeak , ffmpeg , ffprobe , pip und python
Installieren Sie zuerst numpy mit pip und dann aeneas (diese Reihenfolge ist wichtig):
pip install numpy
pip install aeneasUm zu überprüfen, ob Sie Aeneas richtig installiert haben, laufen Sie:
python -m aeneas.diagnosticsFühren Sie ohne Argumente aus, um die Nutzungsnachricht zu erhalten:
python -m aeneas.tools.execute_task
python -m aeneas.tools.execute_jobSie können auch eine Liste von Live -Beispielen erhalten, die Sie dank der enthaltenen Dateien sofort auf Ihrem Computer ausführen können:
python -m aeneas.tools.execute_task --examples
python -m aeneas.tools.execute_task --examples-all Um eine Synchronisierungsmap map.json für ein Paar zu berechnen ( audio.mp3 , text.txt im Klartextformat), können Sie ausführen:
python -m aeneas.tools.execute_task
audio.mp3
text.txt
" task_language=eng|os_task_file_format=json|is_text_type=plain "
map.json (Der Befehl wurde in Linien mit für visuelle Klarheit aufgeteilt. In der Produktion können Sie den gesamten Befehl in einer einzelnen Zeile und/oder die Shell -Variablen verwenden.)
Um eine Synchronisations -Map map.smil für ein Paar zu berechnen ( audio.mp3 , Seite.xhtml mit Fragmenten, die durch id -Attribute wie f001 gekennzeichnet sind) können Sie ausführen:
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.smilWie Sie sehen können, gibt das dritte Argument (die Konfigurationszeichenfolge ) die Parameter an, die die E/A -Formate und die Verarbeitungsoptionen für die Aufgabe steuern. Weitere Informationen finden Sie in der Dokumentation.
Wenn Sie über mehrere Aufgaben verfügen, können Sie einen Jobcontainer erstellen, um sie zu verarbeiten:
python -m aeneas.tools.execute_job job.zip output_directory Datei job.zip sollte eine Konfigurationsdatei config.txt oder config.xml enthalten, die Aeneas mit allen Informationen bereitstellt, die zum Analysieren der Eingabemesselme erforderlich sind und die Ausgabesynchronisierungs -Kartendateien formatieren. Weitere Informationen finden Sie in der Dokumentation.
Die Dokumentation enthält ein sehr vorgeschlagenes Tutorial, in dem erklärt wird, wie die integrierten Befehlszeilen-Tools verwendet werden.
parsed , plain , subtitles oder unparsed (XML) -Format einmplain und munparsed (XML)class z idffmpeg lesbaren Lesbarenfinetuneas -Projekt)Eine bedeutende Anzahl von Benutzern führt Aeneas aus, um Audio und Text auf Wortebene auszurichten (dh jedes Fragment ist ein Wort). Obwohl Aeneas nicht unter Berücksichtigung von Wortniveau ausgelegt war und die Ergebnisse den ASR-basierten erzwungenen Alignern für Sprachen mit guten ASR-Modellen möglicherweise unterlegen sind, bietet Aeneas einige Optionen zur Verbesserung der Qualität der Ausrichtung auf Wortebene:
Wenn Sie das Befehlszeilen-Tool aeneas.tools.execute_task verwenden, können Sie --presets-word Switch addieren, um die MFCC-Nonspeech-Maskierung zu aktivieren, z. B.:
$ python -m aeneas.tools.execute_task --example-words --presets-word
$ python -m aeneas.tools.execute_task --example-words-multilevel --presets-word Wenn Sie Aeneas als Bibliothek verwenden, legen Sie einfach die entsprechenden RuntimeConfiguration -Parameter fest. Weitere Informationen finden Sie im Tutorial für Befehlszeilen.
Aeneas wird unter den Bestimmungen der GNU Affero General Public Lizenz Version 3. veröffentlicht. Weitere Informationen finden Sie in der Lizenzdatei.
Lizenzen für Code und Dateien von Drittanbietern, die in Aeneas enthalten sind, finden Sie im Lizenzenverzeichnis.
Bei der Herstellung dieses Projekts wurden keine Kopierrechte geschädigt.
Juli 2015 : Michele Gianella unterstützte großzügig die Entwicklung des Grenzanpassungscode (v1.0.4)
August 2015 : Michele Gianella hat teilweise den Hafen des MFCC/DTW -Code für C (v1.1.0) gesponsert (v1.1.0)
September 2015 : Freunde in Westafrika haben teilweise die Entwicklung des Kopf-/Schwanzerkennungscode (v1.2.0) gesponsert.
Oktober 2015 : Eine anonyme Spende wurde die Entwicklung der Option "YouTube Downloader" (v1.3.0) gesponsert (v1.3.0)
April 2016 : Die FRUCH Foundation hat freundlicherweise die Entwicklung und Dokumentation von V1.5.0 gesponsert
Dezember 2016 : Das Centro Internazionale del libro parlato "Adriano Sernagiotto" (Frtre, Italien) hat die Entwicklung der V1.7 -Serie teilweise gesponsert
Möchten Sie die Entwicklung von Aeneas unterstützen?
Ich akzeptiere Sponsoring zu
Fühlen Sie sich frei, sich in Verbindung zu setzen.
Wenn Sie der Meinung sind, dass Sie einen Fehler gefunden haben oder eine Funktionsanfrage haben, verwenden Sie bitte den GitHub -Problem -Tracker, um ihn einzureichen.
Wenn Sie eine Frage zur Verwendung von Aeneas stellen möchten, besteht Ihre beste Option darin, eine E -Mail an die Mailingliste zu senden.
Schließlich sind Codebeiträge willkommen! Weitere Informationen zu den Folgen der Zweig -Richtlinien und dem zu folgenden Codestil finden Sie im Code -Beitragshandbuch.
Vielen Dank an Nicola Montecchio , der vorschlug, MFCCS und DTW zu verwenden, und gemeinsam den ersten experimentellen Code für die Ausrichtung von Audio und Text entwickelte.
Paolo Bertasi , der die API- und Webanwendung für Readbeyond Sync entwickelte, half bei der Gestaltung der Struktur dieses Pakets für seine asynchrone Verwendung.
Chris Hubbard hat die Dateien für die Verpackung von Aeneas als Debian/Ubuntu .deb vorbereitet.
Daniel Bair erstellte die brew für die Installation von Aeneas und seine Abhängigkeiten auf Mac OS X.
Daniel Bair , Chris Hubbard und Richard Margetts verpackten die Installateure für Mac OS X und Windows.
Firat Ozdemir steuerte den finetuneas HTML/JS -Code für Feinabstimmungssynchronisierungskarten im Browser bei.
Willem van der Walt hat den Code -Snippet dazu beigetragen, eine Synchronisierungskarte im TextGrid -Format auszugeben.
Chris Vaughn trug den MacOS TTS -Wrapper bei.
Alle mächtigen Github -Mitwirkenden und die Mitglieder der Google Group.