Allosaurus ist ein vorbereiteter universeller Telefonerkenner. Es kann verwendet werden, um Telefone in mehr als 2000 Sprachen zu erkennen.
Dieses Tool basiert auf unserem ICASSP 2020 Work Universal Phoneerkennung mit einem mehrsprachigen Allophon -System
Allosaurus ist bei PIP erhältlich
pip install allosaurus
Sie können dieses Repository auch klonen und installieren
python setup.py install
Die grundlegende Verwendung ist ziemlich einfach, Ihre Eingabe ist eine WAV -Audio -Datei und Ausgabe ist eine Abfolge von Telefonen.
python -m allosaurus.run -i < audio >
Sie können beispielsweise versuchen, die angehängte Beispieldatei in diesem Repository zu verwenden. Ratet mal, was in dieser Audiodatei ist :)
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
Sie können auch Allosaurus direkt in Python verwenden
from allosaurus . app import read_recognizer
# load your model
model = read_recognizer ()
# run inference -> æ l u s ɔ ɹ s
model . recognize ( 'sample.wav' )
Ausführliche Funktionen und Details finden Sie in den folgenden Abschnitten.
Die Befehlszeilenschnittstelle lautet wie folgt:
python -m allosaurus.run [--lang < language name > ] [--model < model name > ] [--device_id < gpu_id > ] [--output < output_file > ] [--topk < int > ] -i < audio file/directory >
Es wird die schmalen Telefone in den Audiodateien (en) erkennen. Nur das Eingabeargument ist obligatorisch, andere Optionen können ignorieren. Weitere Informationen finden Sie in den folgenden Abschnitten.
Es gibt auch eine einfache Python -Schnittstelle wie folgt:
from allosaurus . app import read_recognizer
# load your model by the <model name>, will use 'latest' if left empty
model = read_recognizer ( model )
# run inference on <audio_file> with <lang>, lang will be 'ipa' if left empty
model . recognize ( audio_file , lang )
Die Details von Argumenten in beiden Schnittstellen sind wie folgt:
Die Eingabe kann eine einzelne Datei oder ein Verzeichnis sein, das mehrere Audiodateien enthält.
Wenn die Eingabe eine einzige Datei ist, gibt sie nur die Telefonsequenz aus. Wenn die Eingabe ein Verzeichnis ist, wird sowohl die Dateinamen- als auch die Telefonsequenz ausgegeben. Die Ergebnisse werden nach Dateinamen sortiert.
Die Audiodatei sollten sich im folgenden Format befinden:
Es sollte eine WAV -Datei sein. Wenn sich das Audio nicht im WAV -Format befindet, konvertieren Sie Ihr Audio bitte im Voraus mit SOX oder FFMPEG in ein WAV -Format.
Die Stichprobenrate kann willkürlich sein, wir werden sie automatisch anhand der Anforderungen der Modelle wiederproben.
Wir gehen davon aus, dass das Audio ein Monokanal-Audio ist.
Die Ausgabe ist standardmäßig STDOut (dh sie druckt alle Ergebnisse auf Terminal).
Wenn Sie eine Datei als Ausgabe angeben, werden alle Ausgaben an diese Datei gerichtet.
Die lang
-Option ist die Sprach -ID. Es soll das Telefoninventar angeben, das Sie verwenden möchten. Die Standardoption ist ipa
, die dem Erkenntnis mitteilt, dass er das gesamte Inventar (ca. 230 Telefone) verwendet.
Das Angeben des Sprachinventars kann im Allgemeinen Ihre Erkennungsgenauigkeit verbessern.
Sie können die vollständige Sprachliste mit dem folgenden Befehl überprüfen. Die Anzahl der verfügbaren Sprachen liegt bei 2000.
python -m allosaurus.bin.list_lang
Um das Inventar der Sprache zu überprüfen, können Sie den folgenden Befehl verwenden
python -m allosaurus.bin.list_phone [--lang < language name > ]
Zum Beispiel,
# to get English phone inventory
# ['a', 'aː', 'b', 'd', 'd̠', 'e', 'eː', 'e̞', 'f', 'h', 'i', 'iː', 'j', 'k', 'kʰ', 'l', 'm', 'n', 'o', 'oː', 'p', 'pʰ', 'r', 's', 't', 'tʰ', 't̠', 'u', 'uː', 'v', 'w', 'x', 'z', 'æ', 'ð', 'øː', 'ŋ', 'ɐ', 'ɐː', 'ɑ', 'ɑː', 'ɒ', 'ɒː', 'ɔ', 'ɔː', 'ɘ', 'ə', 'əː', 'ɛ', 'ɛː', 'ɜː', 'ɡ', 'ɪ', 'ɪ̯', 'ɯ', 'ɵː', 'ɹ', 'ɻ', 'ʃ', 'ʉ', 'ʉː', 'ʊ', 'ʌ', 'ʍ', 'ʒ', 'ʔ', 'θ']
python -m allosaurus.bin.list_phone --lang eng
# you can also skip lang option to get all inventory
#['I', 'a', 'aː', 'ã', 'ă', 'b', 'bʲ', 'bʲj', 'bʷ', 'bʼ', 'bː', 'b̞', 'b̤', 'b̥', 'c', 'd', 'dʒ', 'dʲ', 'dː', 'd̚', 'd̥', 'd̪', 'd̯', 'd͡z', 'd͡ʑ', 'd͡ʒ', 'd͡ʒː', 'd͡ʒ̤', 'e', 'eː', 'e̞', 'f', 'fʲ', 'fʷ', 'fː', 'g', 'gʲ', 'gʲj', 'gʷ', 'gː', 'h', 'hʷ', 'i', 'ij', 'iː', 'i̞', 'i̥', 'i̯', 'j', 'k', 'kx', 'kʰ', 'kʲ', 'kʲj', 'kʷ', 'kʷʼ', 'kʼ', 'kː', 'k̟ʲ', 'k̟̚', 'k͡p̚', 'l', 'lʲ', 'lː', 'l̪', 'm', 'mʲ', 'mʲj', 'mʷ', 'mː', 'n', 'nj', 'nʲ', 'nː', 'n̪', 'n̺', 'o', 'oː', 'o̞', 'o̥', 'p', 'pf', 'pʰ', 'pʲ', 'pʲj', 'pʷ', 'pʷʼ', 'pʼ', 'pː', 'p̚', 'q', 'r', 'rː', 's', 'sʲ', 'sʼ', 'sː', 's̪', 't', 'ts', 'tsʰ', 'tɕ', 'tɕʰ', 'tʂ', 'tʂʰ', 'tʃ', 'tʰ', 'tʲ', 'tʷʼ', 'tʼ', 'tː', 't̚', 't̪', 't̪ʰ', 't̪̚', 't͡s', 't͡sʼ', 't͡ɕ', 't͡ɬ', 't͡ʃ', 't͡ʃʲ', 't͡ʃʼ', 't͡ʃː', 'u', 'uə', 'uː', 'u͡w', 'v', 'vʲ', 'vʷ', 'vː', 'v̞', 'v̞ʲ', 'w', 'x', 'x̟ʲ', 'y', 'z', 'zj', 'zʲ', 'z̪', 'ä', 'æ', 'ç', 'çj', 'ð', 'ø', 'ŋ', 'ŋ̟', 'ŋ͡m', 'œ', 'œ̃', 'ɐ', 'ɐ̞', 'ɑ', 'ɑ̱', 'ɒ', 'ɓ', 'ɔ', 'ɔ̃', 'ɕ', 'ɕː', 'ɖ̤', 'ɗ', 'ə', 'ɛ', 'ɛ̃', 'ɟ', 'ɡ', 'ɡʲ', 'ɡ̤', 'ɡ̥', 'ɣ', 'ɣj', 'ɤ', 'ɤɐ̞', 'ɤ̆', 'ɥ', 'ɦ', 'ɨ', 'ɪ', 'ɫ', 'ɯ', 'ɯ̟', 'ɯ̥', 'ɰ', 'ɱ', 'ɲ', 'ɳ', 'ɴ', 'ɵ', 'ɸ', 'ɹ', 'ɹ̩', 'ɻ', 'ɻ̩', 'ɽ', 'ɾ', 'ɾj', 'ɾʲ', 'ɾ̠', 'ʀ', 'ʁ', 'ʁ̝', 'ʂ', 'ʃ', 'ʃʲː', 'ʃ͡ɣ', 'ʈ', 'ʉ̞', 'ʊ', 'ʋ', 'ʋʲ', 'ʌ', 'ʎ', 'ʏ', 'ʐ', 'ʑ', 'ʒ', 'ʒ͡ɣ', 'ʔ', 'ʝ', 'ː', 'β', 'β̞', 'θ', 'χ', 'ә', 'ḁ']
python -m allosaurus.bin.list_phone
Die model
besteht darin, das Modell für Inferenz auszuwählen. Die Standardoption ist latest
. Es zeigt auf das neueste Modell, das Sie heruntergeladen haben. Es wird das neueste Modell während Ihrer ersten Folgerung automatisch herunterladen, wenn Sie keine lokalen Modelle haben.
Wir beabsichtigen, neue Modelle auszubilden und sie kontinuierlich freizugeben. Das Update kann sowohl Binärdateien als auch das akustische Modell und das Telefoninventar enthalten. In der Regel gibt der Name des Modells sein Trainingsdatum an, sodass in der Regel eine höhere Modell -ID zu erwarten ist, um eine bessere Leistung zu erzielen.
Um ein neues Modell herunterzuladen, können Sie den folgenden Befehl ausführen.
python -m allosaurus.bin.download_model -m < model >
Wenn Sie den Modellnamen nicht kennen, können Sie latest
als Modellname verwenden und das neueste Modell automatisch herunterladen.
Wir stellen fest, dass die Aktualisierung eines neuen Modells die Originalmodelle nicht löscht. Alle Modelle werden im pretrained
Verzeichnis aufbewahrt, in dem Sie den Allosaurus installiert haben. Möglicherweise möchten Sie Ihr Modell beheben, um während eines Experiments konsistente Ergebnisse zu erzielen.
Um festzustellen, welche Modelle in Ihrer lokalen Umgebung verfügbar sind, können Sie sich mit dem folgenden Befehl erkundigen
python -m allosaurus.bin.list_model
Um ein Modell zu löschen, können Sie den folgenden Befehl verwenden. Dies kann nützlich sein, wenn Sie Ihre später genannten Modelle fein abtun.
python -m allosaurus.bin.remove_model
Aktuelle verfügbare Modelle sind die folgenden Angehörigen
Die universellen Modelle prognostizieren sprachunabhängige Telefone und deckt viele Sprachen ab. Dies ist der Standardmodell -Allosaurus, der versucht, herunterzuladen und zu verwenden. Wenn Sie Ihre Sprache nicht in den sprachabhängigen Modellen finden, verwenden Sie stattdessen dieses universelle Modell.
Modell | Zielsprache | Beschreibung |
---|---|---|
uni2005 | Universal | Dies ist das latest Modell (zuvor als 200529 bezeichnet) |
Wir planen, sprachabhängige Modelle für einige weit verbreitete Sprachen zu liefern. Die Modelle hier sind speziell mit der Zielsprache geschult. Es sollte viel besser abschneiden als das universelle Modell für die Zielsprache. Diese Modelle werden nicht automatisch heruntergeladen. Bitte verwenden Sie den Befehl download_model
oben, um während der Inferenz herunterzuladen und --model
Flag zu verwenden.
Modell | Zielsprache | Beschreibung |
---|---|---|
eng2102 | Englisch (ENG) | Nur englisches Modell |
device_id
steuert, welches Gerät die Inferenz ausführen soll.
Standardmäßig ist Device_id -1, was angibt, dass das Modell nur CPUs verwendet.
Wenn Sie jedoch eine GPU haben, können Sie sie für Inferenz verwenden, indem Sie Device_ID in einer einzelnen GPU -ID angeben. (Beachten Sie, dass mehrere GPU -Inferenz nicht unterstützt werden)
Sie können einen ungefähren Zeitstempel für jedes erkannte Telefon mit dem timestamp
abrufen.
python -m allosaurus.run --timestamp=True -i sample.wav
0.210 0.045 æ
0.390 0.045 l
0.450 0.045 u
0.540 0.045 s
0.630 0.045 ɔ
0.720 0.045 ɹ
0.870 0.045 s
Das Format hier in jeder Zeile ist start_timestamp duration phone
wobei der start_timestamp
und duration
in Sekunden angezeigt werden.
Beachten Sie, dass der aktuelle Zeitstempel nur eine Näherung ist. Es wird vom CTC -Modell bereitgestellt, das in einigen Fällen aufgrund seiner Natur möglicherweise nicht genau ist.
Die gleiche Schnittstelle ist auch in Python wie folgt erhältlich:
model = read_recognizer ()
model . recognize ( './sample.wav' , timestamp = True )
Manchmal kann es hilfreich sein, mehr Telefone zu erzeugen. Wenn Sie das Top-K-Arg angeben, werden K-Telefone an jedem emittierenden Rahmen erzeugt. Standard ist 1.
# default topk is 1
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
# output top 5 probable phones at emitting frame, "|" is used to delimit frames (no delimiter when topk=1)
# probability is attached for each phone, the left most phone is the most probable phone
# <blk> is blank which can be ignored.
python -m allosaurus.run -i sample.wav --topk=5
æ (0.577) ɛ (0.128) ɒ (0.103) a (0.045) ə (0.021) | l (0.754) l̪ (0.196) lː (0.018) ʁ (0.007) ʀ (0.006) | u (0.233) ɨ (0.218) uː (0.104) ɤ (0.070) ɪ (0.066) | s (0.301) < blk > (0.298) z (0.118) s̪ (0.084) sː (0.046) | ɔ (0.454) ɑ (0.251) < blk > (0.105) ɹ̩ (0.062) uə (0.035) | ɹ (0.867) ɾ (0.067) < blk > (0.024) l̪ (0.018) r (0.015) | s (0.740) z (0.191) s̪ (0.039) zʲ (0.009) sː (0.003)
Sie können das Modell feststellen, dass er mehr Telefone oder weniger Telefone aussagen soll, indem Sie das Argument --emit
oder -e
ändern.
# default emit is 1.0
python -m allosaurus.run -i sample.wav
æ l u s ɔ ɹ s
# emit more phones when emit > 1
python -m allosaurus.run -e 1.2 -i sample.wav
æ l u s f h ɔ ɹ s
# emit less phones when emit < 1
python -m allosaurus.run -e 0.8 -i sample.wav
æ l u ɹ s
Das Standard -Telefoninventar ist möglicherweise nicht das Inventar, das Sie verwenden möchten. Daher geben wir hier mehrere Befehle an, damit Sie Ihr eigenes Inventar anpassen können.
Wir haben erwähnt, dass Sie Ihr aktuelles (Standard-) Inventar mit dem folgenden Befehl überprüfen können.
python -m allosaurus.bin.list_phone --lang < language name >
Die aktuelle Telefoninventardatei kann in eine Datei abgeladen werden
# dump the phone file
python -m allosaurus.bin.write_phone --lang < language name > --output < a path to save this file >
Wenn Sie sich die Datei ansehen, handelt es sich nur um ein einfaches Format, in dem jede Zeile ein einzelnes Telefon darstellt. Zum Beispiel ist das folgende eine englische Datei
a
aː
b
d
...
Sie können diese Datei zum Hinzufügen oder Löschen von IPAs anpassen, die Sie möchten. Jede Zeile sollte nur ein IPA -Telefon ohne Platz enthalten. Es ist möglicherweise einfacher, später zu debuggen, wenn IPAs sortiert sind, aber nicht erforderlich.
Aktualisieren Sie als nächstes das Inventar Ihres Modells mit dem folgenden Befehl
python -m allosaurus.bin.update_phone --lang < language name > --input < the file you customized)
Dann wurde die Datei in Ihrem Modell registriert, führen Sie den Befehl List_phone erneut aus und Sie können sehen, dass sie jetzt Ihr aktualisiertes Inventar verwendet
python -m allosaurus.bin.list_phone --lang < language name >
Wenn Sie nun die Inferenz erneut ausführen, können Sie auch sehen, dass die Ergebnisse auch Ihr aktualisiertes Inventar widerspiegeln.
Auch nach Ihrem Update können Sie problemlos zum ursprünglichen Inventar zurückkehren. In diesem Fall wird Ihre aktualisierte Datei gelöscht.
python -m allosaurus.bin.restore_phone --lang < language name >
Sie können die Ergebnisse auch ändern, indem Sie die vorherige Wahrscheinlichkeit für jedes Telefon einstellen. Dies kann Ihnen helfen, die unerwünschten Telefone zu reduzieren oder die gewünschten Telefone zu erhöhen.
Zum Beispiel erhalten wir in der Beispieldatei die Ausgabe
æ l u s ɔ ɹ s
Angenommen, Sie denken, dass das erste Telefon falsch ist und die Wahrscheinlichkeit dieses Telefons verringern möchte, können Sie prior.txt
eine neue Datei erstellen.
æ -10.0
Die Datei kann mehrere Zeilen enthalten und jede Zeile enthält Informationen für jedes Telefon. Das erste Feld ist Ihr Zieltelefon und das zweite Feld ist die logarithmische Punktzahl, um Ihre Wahrscheinlichkeit anzupassen. Positive Punktzahl bedeutet, dass Sie seine Vorhersage steigern möchten. Die negative Punktzahl wird seine Vorhersage unterdrücken. In diesem Fall können wir ein neues Ergebnis erzielen
python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
ɛ l u s ɔ ɹ s
Wo Sie sehen können, wird æ
unterdrückt und ein weiterer Vokal ɛ
ersetzt es.
Eine weitere Anwendung von Prior besteht darin, die Anzahl der Gesamtausgangstelefone zu ändern. Möglicherweise möchten Sie mehr Telefone oder weniger Telefoneausgänge. In diesem Fall können Sie die Punktzahl für das <blk>
ändern, was dem Stille -Telefon entspricht.
Ein positiver <blk>
-Schabe wird mehr Stille hinzufügen und daher die Anzahl der Ausgänge verringert. In ähnlicher Weise erhöht ein negativer <blk>
die Ausgänge. Das folgende Beispiel zeigt dies.
# <blk> 1.0
python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
æ l u ɔ ɹ s
# <blk> -1.0
$ python -m allosaurus.run -i=sample.wav --lang=eng --prior=prior.txt
æ l u s f ɔ ɹ s
Das erste Beispiel reduziert ein Telefon und das zweite Beispiel fügt ein neues Telefon hinzu.
Wir stellen fest, dass die vorbereiteten Modelle für einige Sprachen möglicherweise nicht genau genug sind. Daher bieten wir hier auch ein Feinabstimmungstool an, damit Benutzer ihr Modell weiter verbessern können, indem sie sich an ihre Daten anpassen. Derzeit ist es nur auf eine Feinabstimmung mit einer Sprache beschränkt.
Um Ihre Daten zu optimieren, müssen Sie Audiodateien und deren Transkriptionen vorbereiten. Erstellen Sie zunächst ein Datenverzeichnis (der Name kann willkürlich sein) im Datenverzeichnis, erstellen Sie ein train
und ein validate
. Offensichtlich enthält das train
Ihr Trainingssatz und das validate
ist das Validierungssatz.
Jedes Verzeichnis sollte die folgenden zwei Dateien enthalten:
wave
: Dies ist eine Datei, die die Äußerung mit ihren entsprechenden Audios assoziierttext
: Dies ist eine Datei, die die Äußerung mit seinen Telefonen assoziiert. wave
ist eine TXT -Datei, die jede Äußerung zu Ihren WAV -Dateien zuordnet. Jede Zeile sollte wie folgt vorbereitet werden:
utt_id /path/to/your/audio.wav
Hier bezeichnet utt_id
die Äußerungs -ID, sie kann eine willkürliche Zeichenfolge sein, solange sie in Ihrem Datensatz eindeutig ist. Das audio.wav
ist Ihre WAV-Datei, wie oben erwähnt, es sollte ein Mono-Kanal-WAV-Format sein, aber die Stichprobenrate kann willkürlich sein (das Tool würde bei Bedarf automatisch wieder eingetrieben werden). Der hier verwendete Trennzeichen ist Platz.
Um die besten Feinabstimmungsergebnisse zu erzielen, sollte jede Audiodatei nicht sehr lang sein. Wir empfehlen, jede Äußerung kürzer als 10 Sekunden zu halten.
text
ist eine weitere TXT -Datei, die jede Äußerung zu Ihrer Transkription zuordnet. Jede Zeile sollte wie folgt vorbereitet werden
utt_id phone1 phone2 ...
Hier ist utt_id
wieder die Äußerungs -ID und sollte mit der entsprechenden WAV -Datei übereinstimmen. Die Telefonsequenzen kamen nach der Äußerungs -ID sind Ihre phonetischen Transkriptionen der WAV -Datei. Die Telefone hier sollten auf das Telefoninventar Ihrer Zielsprache beschränkt sein. Bitte stellen Sie sicher, dass alle Ihre Telefone bereits von dem Befehl list_phone
in Ihrer Zielsprache registriert sind
Als nächstes extrahieren wir die Funktion sowohl aus der wave
als auch aus text
. Wir gehen davon aus, dass Sie bereits wave
und text
im train
vorbereitet haben und das Verzeichnis validate
Führen Sie den folgenden Befehl sowohl in Ihrem train
aus und validate
das Verzeichnis.
# command to prepare audio features
python -m allosaurus.bin.prep_feat --model=some_pretrained_model --path=/path/to/your/directory (train or validate)
Der path
sollte auf den Zug oder das Validierungsverzeichnis zeigen, das model
sollte auf Ihr tragetes vorbereitendes Modell zeigen. Bei nicht spezifiziertem Modell wird das neueste Modell verwendet. Es generiert drei Dateien feat.scp
, feat.ark
und shape
.
Die erste ist eine Datei, die jede Äußerung in einen Offset der zweiten Datei indiziert.
Die zweite Datei ist eine binäre Datei, die alle Audiofunktionen enthält.
Der dritte enthält die Feature -Dimension -Informationen
Wenn Sie neugierig sind, sind die scp
und ark
-Formate Standarddateiformate, die in Kaldi verwendet werden.
Um die Textmerkmale vorzubereiten, führen Sie den folgenden Befehl erneut in Ihrem train
aus und validate
das Verzeichnis.
# command to prepare token
python -m allosaurus.bin.prep_token --model= < some_pretrained_model > --lang= < your_target_language_id > --path=/path/to/your/directory (train or validate)
Der path
und model
sollten dem vorherigen Befehl übereinstimmen. Der lang
ist die 3 -Zeichen -ISO -Sprach -ID dieses Datensatzes. Beachten Sie, dass Sie bereits das Telefoninventar dieser Sprach -ID überprüfen sollten, die alle Ihre Telefontranskriptionen enthält. Andernfalls könnte die Extraktion hier fehlschlagen.
Nach diesem Befehl generiert es eine Datei namens token
, die jede Äußerung den Telefon -ID -Sequenzen ordnet.
Als nächstes können wir unser Modell mit dem von uns gerade vorbereiteten Datensatz abtun. Der Befehl Feinabstimmung ist sehr einfach.
# command to fine_tune your data
python -m allosaurus.bin.adapt_model --pretrained_model= < pretrained_model > --new_model= < your_new_model > --path=/path/to/your/data/directory --lang= < your_target_language_id > --device_id= < device_id > --epoch= < epoch >
Hier stehen ein paar andere optionale Argumente zur Verfügung, aber wir beschreiben die erforderlichen Argumente.
pretrained_model
sollte das gleiche Modell sein, das Sie zuvor in der prep_token
und prep_feat
angegeben haben.
new_model
kann ein willkürlicher Modellname sein (tatsächlich kann es einfacher zu verwalten sein, wenn Sie jedem Modell das gleiche Format wie das vorbereitete Modell geben (dh yymmdd))
Der path
sollte auf das übergeordnete Verzeichnis Ihres train
hinweisen und Verzeichnisse validate
.
Der lang
ist die Sprach -ID, die Sie in prep_token
angegeben haben
Die GPU device_id
für die Feinabstimmung ist die GPU -ID. Wenn Sie keine GPU haben, verwenden Sie -1 als Device_ID. Mehrere GPU werden nicht unterstützt.
epoch
ist die Anzahl Ihrer Trainingspoche
Während des Trainings werden einige Informationen wie Verlust- und Telefonfehlerrate sowohl für Ihr Trainingssatz als auch für die Validierungssatz angezeigt. Nach jeder Epoche wird das Modell mit dem Validierungssatz bewertet und speichert diesen Kontrollpunkt, wenn sein Validierungs -Telefonfehlerrate besser ist als vorherige. Nach Abschluss der angegebenen epoch
endet der Feinabstimmungsprozess und das neue Modell sollte verfügbar sein.
Nach Ihrem Trainingsprozess sollte das neue Modell in Ihrer Modellliste verfügbar sein. Verwenden Sie den Befehl list_model
, um Ihr neues Modell zu überprüfen, das ab sofort verfügbar ist
# command to check all your models
python -m allosaurus.bin.list_model
Wenn es verfügbar ist, kann dieses neue Modell im gleichen Stil wie alle anderen vorbereiteten Modelle verwendet werden. Führen Sie einfach die Inferenz aus, um Ihr neues Modell zu verwenden.
python -m allosaurus.run --lang < language id > --model < your new model > --device_id < gpu_id > -i < audio >
Diese Arbeit verwendet einen Teil der folgenden Codes und Lagerbestände. Insbesondere haben wir Allovera und Phoibl, um das Telefoninventar dieses Modells zu erstellen, stark verwendet.
Bitte zitieren Sie das folgende Papier, wenn Sie Code in Ihrer Arbeit verwenden.
Wenn Sie Ratschläge oder Vorschläge haben, senden Sie mir bitte eine E -Mail an mich (Xinjianl [at] cs.cmu.edu) oder senden Sie ein Problem in diesem Repo. Danke!
@inproceedings { li2020universal ,
title = { Universal phone recognition with a multilingual allophone system } ,
author = { Li, Xinjian and Dalmia, Siddharth and Li, Juncheng and Lee, Matthew and Littell, Patrick and Yao, Jiali and Anastasopoulos, Antonios and Mortensen, David R and Neubig, Graham and Black, Alan W and Florian, Metze } ,
booktitle = { ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) } ,
pages = { 8249--8253 } ,
year = { 2020 } ,
organization = { IEEE }
}