German

Nested
Re: Material für Sphinx
User: Dr_Grilli
Date: 2/11/2014 2:55 am
Views: 64
Rating: 0

> qq-Phonem

Was ich meine ist der "glottal stop" im englischen, im Deutschen "stimmloser glottaler Plosiv genannt" (mehr dazu hier: http://de.wikipedia.org/wiki/Stimmloser_glottaler_Plosiv ). Am Beispiel der Wörter "Veranstaltung" und "Veranda" kann man das sich gut veranschaulichen. Nach dem "Ver" bei "Veranstaltung" setzt man beim Sprechen quasi kurz ab (ist linguistisch jetzt natürlich nicht ganz sauber erklärt) während bei "Veranda" eher verschliffen wird. Der glottale Plosiv ist auf jedenfall hier http://goofy.zamia.org/voxforge/de/dict/dict-ipa.txt noch häufig zu finden.

Im Voxforge-PocketSphinx-Dictionary wird das meistens als qq-Phonem kodiert. Ich bin nun schon auf einige Paper gestoßen, wo der glottal stop weggelassen wurde. Man kann sich darüber streiten, ob ein Phonem für den glottalen Plosiv innerhalb des Wortes Sinn macht oder nicht. Meiner Meinung nach kann man ihn ruhig weglassen, so dass der glottale Plosiv einfach den benachbarten Phonemen zugeordnet wird. Ich würde mal vermuten, dass dieser Laut in der Spektralansicht auch gar keine wirkliche eigentliche Charakteristik aufweist. Was definitiv keinen Sinn macht ist allerdings den glottalen Plosiv am Wortanfang mit aufzuführen.

> Was müsste man denn da tun?

qq-Phonem am Wortanfang einfach per Regex rauslöschen. Es kann aber sein, dass du mit deinem Skript dieses Phonem bereits ignorierst und hier auch überhaupt kein Problem entsteht.

Was mir noch aufgefallen ist beim stichprobenartigen Durchhören: Die meisten Sprecher vernuscheln die "en"-Endungen. Nehmen wir mal das Wort "Statuten". Steht im Dictionary (XSAMPA) mit "Sta-'tu:-t@n". Das ist eine Aussprache, die du wahrscheinlich höchstens noch bei Tagesschausprechern oder Schauspielern, die ein entsprechendes Sprechtraining durchlaufen haben, hören können wirst. Die meisten umgangssprachlichen Sprecher sprechen aber "Sta-'tu:-tn". Ich gebe zu, das ist das Sahnehäubchen. Aber hier könnte man auch relativ leicht per RegEx ran. Stellenweise taucht das vernuschelte "en" aber auch mitten im Wort auf.

> da wollte ich versuchen, ein entsprechendes tool zu bauen

Finde ich eine prima Idee! Es gibt ja bereits Open-Source-Transkriptionstools, die das Ganze erleichtern und dann die transkribierten Texte mit Zeitstempel im XML-Format speichern. Wenn man es schaffen könnte das zu nutzen, im Anschluss per Skript über die XML-Datei zu gehen, zu schneiden (mittels sox oder so) und als Trainingsdateien für Sphinx, HTK oder was auch immer aufzubereiten, dann hätte man ne ziemlich komfortable Lösung, mit der man auch massenhaft Hörbücher transkribieren könnte.

Ein so ein Projekt, dass ich mir mal angeschaut habe, ist TranscriberAG

http://transag.sourceforge.net/

Leider läuft das derzeit nicht auf meinem Debian-System. Ich habe mal einen Abend lang versucht es aus den Quellen zu kompilieren aber es gab' da ein paar Abhängigkeiten, die ich auf die Schnelle nicht auflösen konnte. Ggf. läuft aber die Windows-Version noch. Ansonsten müsste man die Entwickler mal anschreiben. Ich hoffe ich mache da kein zu großes und zu kompliziertes Fass auf. Aber wenn man derart große Mengen an Audiomaterial transkribieren möchte, ist ein kleines Tool vielleicht ganz hilfreich.


Viele Grüße

Grilli

Re: Organizing controlling/tagging of german audio material
User: Binh
Date: 2/11/2014 4:44 am
Views: 12
Rating: 0

Danke für das CSV File. Ich versuch gerade einen Parser zu schreiben damit wir das für unsere Zwecke auf unsere Seite  bringen können und eventuell mit einer HTML Webseite darstellen können.

Allerdings war ich ja eine Weile nicht da und ihr müßt mir mal eine Zeile im Detail erklären. Ich nehm mal die erste im CSV.

120396,"timobaumann-20080516-nfe","de5-020","timobaumann-20080516-nfe_de5-020",1,False,0,0,True,"","DAS COMPUTERNETZWERK BESTEHT NICHT NUR AUSSCHLIEßLICH AUS KABELLOSEN ELEMENTEN","'das kÉ”m-'pjuː-tɐ-nÉ›ts-vɛɐk bÉ™-'ʃteːt 'nɪçt 'nuːɐ 'aÊŠs-ʃliːs-lɪç 'aÊŠs 'kaː-bÉ™l-loː-zÉ™n Ê”eː-lÉ™-'mÉ›n-tÉ™n",468

120396 = ID. Soweit klar

timobaumann-20080516-nfe = Name des Pakets. 

de5-020 = audiofn. Name des waves im Paket

timobaumann-20080516-nfe_de5-020 = cfn Name im Trainingsfile

1 = noiselevel. OK

False = truncated. Also nicht abgeschnitten. Ok

0 = audiolevel. Was hiess hier nochmal 0?

0 = pcn. hm?

True = continous. Das versteh ich wieder

"" = commentar. ok auch klar

DAS COMPUTERNETZWERK BESTEHT NICHT NUR AUSSCHLIEßLICH AUS KABELLOSEN ELEMENTEN = das transcript. auch klar.

das kÉ”m-'pjuː-tɐ-nÉ›ts-vɛɐk bÉ™-'ʃteːt 'nɪçt 'nuːɐ 'aÊŠs-ʃliːs-lɪç 'aÊŠs 'kaː-bÉ™l-loː-zÉ™n Ê”eː-lÉ™-'mÉ›n-tÉ™n = hm. IPA. ok nachdem ich das hier aufschreibe versteh ich das. Kleines Zeichensatz Problem beim export allerdings.

468 = numsamples. Was war das nochmal?


erklärungssuchender

Binh

Re: Organizing controlling/tagging of german audio material
User: guenter
Date: 2/11/2014 5:20 am
Views: 45
Rating: 0

> 0 = audiolevel. Was hiess hier nochmal 0?

 0=low, 1=noticable, 2=high

> 0 = pcn. hm?

"pronounciation" :)

 0=clean, 1=accent, 2=dialect, 3=error

> hm. IPA. ok nachdem ich das hier aufschreibe versteh ich das. Kleines
> Zeichensatz Problem beim export allerdings.
eher beim Import - habe die Datei eben nochmal geprueft, die Zeichen sind OK. Die Datei ist utf-8 codiert, ich vermute, dass musst Du deinem Anzeigegeraet sagen.
> 468 = numsamples. Was war das nochmal?
das ist die Laenge der MFCC Datei in Samples, Einheit ist 1/100 Sekunden.
Re: Organizing controlling/tagging of german audio material
User: Binh
Date: 2/11/2014 9:23 am
Views: 16
Rating: 0

Ah supi. Danke danke. Ich hab schonmal einen Parser um es auf eine HTML Webseite in Tabellen Form darzustellen. Allerdings kann ich immer nur 5000 Ergebnisse auf einmal darstellen.

Aber ich hätte noch eine kleinere Frage. Welche der Voxforge Audio Datein hast du zum kontrollieren genommen?

Es gibt ja einen "original" Folder und einen "main" Folder. Die Originale werden dann auf 16khz bzw 8khz für Trainingszwecke runter gerechnet und dann im main gespeichert. Allerdings hatte das Kovertierungsscript auch eine oder zwei Macken.

Wenn du nur die Files im "original" Folder kontrolliert hast, könntest du diese übersehen haben.

Ich möchte vor allem für unser System erstmal die aussortieren wo die Transkription nicht mit dem Audio übereinstimmt,weil diese das Training garantiert verschlechtern. Sind diese als "truncated" gekennzeichnet oder hast du den Prompt einfach nachgebessert?


binh

 

 

Re: Organizing controlling/tagging of german audio material
User: guenter
Date: 2/11/2014 3:29 pm
Views: 16
Rating: 0

> Aber ich hätte noch eine kleinere Frage. Welche der Voxforge Audio Datein

> hast du zum kontrollieren genommen?

>

> Es gibt ja einen "original" Folder und einen "main" Folder. Die Originale

> werden dann auf 16khz bzw 8khz für Trainingszwecke runter gerechnet und dann

> im main gespeichert. Allerdings hatte das Kovertierungsscript auch eine oder

> zwei Macken.

 

bin mir nicht sicher, ob ich immer die gleiche quelle genommen habe ueber die monate/jahre. inzwischen nehme ich aber diese URL als quelle (siehe audio-update.sh):

 

http://www.repository.voxforge1.org/downloads/de/Trunk/Audio/Main/16kHz_16bit/

 

welche macken hat das konvertierungsskript denn?

 

> Ich möchte vor allem für unser System erstmal die aussortieren wo die

> Transkription nicht mit dem Audio übereinstimmt,weil diese das Training

> garantiert verschlechtern. Sind diese als "truncated" gekennzeichnet oder

> hast du den Prompt einfach nachgebessert?

 

wenn sich eine submission durch korrektur des prompts hat retten lassen, dann habe ich das auch getan, also den prompt editiert - das gilt vor allem dann, wenn die leute einfach was anderes gelesen haben, als im prompt stand. nur, wenn wirklich vorne/hinten was abgeschnitten war habe ich die submission als "truncated" markiert.

 

ansonsten ist auch noch "error" bei pcn wichtig - das sind andere lesefehler, die sich nicht ueber den prompt korrigieren lassen - "aehms" und "aehs" zum beispiel oder auch, wenn leute mitten im wort stocken und das wort dann nochmals von vorne beginnen

Re: Organizing controlling/tagging of german audio material
User: guenter
Date: 2/11/2014 3:36 pm
Views: 107
Rating: 0

habe inzwischen auf jeden fall mal nachgesehen - die glottal stops habe ich bei meinen phonemen mit drin - siehe phonetic_alphabets.py. in X-SAMPA waere das das Zeichen '?' und in meinem X-ARPABET dann 'Q'

so ein modelllauf dauert inzwischen stunden - und weil ich staendig neues material aufnehme bin ich dauern am rechnen momentan, weil ich neugierig bin, wie sich meine neuen aufnahmen auf die fehlerraten auswirken, das macht echt spass :) - entsprechend dauert es ein wenig, bis ich CPU power frei habe fuer andere experimente, wie eben mit den phonemen.

kurz die aktuellen statistiken:

Found 11015 words using 59 phones
Estimated Total Hours Training: 32.9549333333333
SENTENCE ERROR: 21.3% (584/2743) WORD ERROR RATE: 8.6% (1456/17021)
muss noch einige kleinere fehler korrigieren und mein stastikskript umbauen so, dass ich die fehlerraten nach benutzern aufgeschluesselt bekomme (vor allem meine eigene interessiert mich und wie sie sich entwickelt, wenn ich mehr lese) - dann wuerde ich hier im forum einen neuen thread aufmachen und bekanntgeben, dass es nun ein aktuelleres deutsches sphinx modell gibt
Re: Organizing controlling/tagging of german audio material
User: Binh
Date: 2/12/2014 3:38 am
Views: 164
Rating: 0

>welche macken hat das konvertierungsskript denn?

Es gab bei einigen Files einen plötzlichen Abfall der Lautstärke.

Bei Original File war alles normal. Aber bei der konvertierten 16khz Version in main war plötzlich nichts mehr zu hören.

Bin mir nicht sicher ob das bereits behoben wurde ^_^

Audiobooks
User: guenter
Date: 2/14/2014 4:51 am
Views: 298
Rating: 0

Habe das Thema Audiobooks als Quelle fuer neues Material man etwas genauer untersucht. TranscriberAG sieht beeindruckend aus - ich muss aber sagen, dass das nicht ganz die sorte Tool ist, die mir vorschwebt.

Ich dachte da eher an einen Satz von Kommandozeilentools - ohne aber sagen zu wollen, dass das praktikabel ist.

Was ich mir zwischenzeitlich ergoogelt habe (immer mit dem Ziel, moeglichst korrekt und einfach Librivox Audiobuecher zerlegen zu koennen):

http://www.voxforge.org/home/dev/autoaudioseg

enthaelt ganz gute Ansaetze - aehnlich wie dort beschrieben ist denke ich die Hauptarbeit erstmal, den Text aufzubereiten und das Lexikon um die fehlenden Woerter plus Aussprache zu ergaenzen, ehe man ueberhaupt das Audiomaterial an sich zerlegen kann - ich denke, dafuer koennte man ein erstes Tool bauen.

Fuer die Segmentierung an sich gibt es bei den CMU Sphinx Leuten einige Tools und Hinweise, z.B.

http://cmusphinx.sourceforge.net/wiki/speakerdiarization

http://cmusphinx.sourceforge.net/wiki/longaudioalignment

Pocketsphinx und Audacity koennten auch gute Dienste leisten - Pocketsphinx kann z.B. ein Segmentation File ausgeben in dem dann Zeitstempel drinstehen, an welcher Stelle welches Wort erkannt wurde - daraus koennte man ein Label-File fuer Audacity machen koennte fuer Kontrollzwecke oder zur leichteren Nachbearbeitung, falls noetig.

Nur so meine Gedanken - und ich wollte die Links mal notiert haben :)

 

Re: Bzgl. Fehlerrate
User: guenter
Date: 2/19/2014 6:09 pm
Views: 66
Rating: 0

> - Sprachmodell: wir haben eine  für Pocketsphinx formatierte Version des

> German Parole Corpus (siehe http://ota.ahds.ac.uk/desc/2467 ).

 

ist das eine (semi-)manuell nach saetzen aufgesplittete version des parole corpus? wenn ja, haette ich daran grosses interesse - bin gerade dabei zu versuchen, einen nltk sentence segmenter zu trainieren fuer meine plaene, librivox audiobooks zu zerlegen, dafuer koennte ich sowas gut gebrauchen.

Re: Audiobooks
User: nsh
Date: 2/20/2014 4:45 pm
Views: 338
Rating: 0

The most advanced algorithm this days is implemented in sail_align:

https://github.com/nassosoassos/sail_align

but it requires HTK and also it requires some improvements for librivox specifically. The algorithm is simple though and can be implemented in sphinx4 too.

Most of the librivox segmentation work is about text cleanup actually, guttenberg texts contain a lot of extra information which are must be removed.

The whole process definitely needs to be automatic, there is nothing that requires manual intervention in the alignment. It's pretty dumb thing.

 

PreviousNext