Danke für deine Mühe Edgar!
Also ich habe dein Plugin ausprobiert und mit der Funktionen in Praat verglichen:
Meine Aufgabe:
Patienten lesen vorgegebene Text ab. Augewertet wird jeweils der 1. Satzt (36 Silben) und der letzte (47 Silben). Gesucht wird nach der Pausen zwischen den Wörten und den Silben (msec-Bereich).
Verglichen wird dann Unterschied zwischen dem ersten und dem letzten Satz.
Audacity
Standart Einstellung:
Treshold 26 dB
Hysteresis 3.0 dB
Min. Duration 10
Müsste in meinem Fall umgestellt werden. Min. Duration = 0 msec. Dann funktioniert das ganze schon mal nicht schlecht.
Genauigkeit der START / END Punkte.
Also in meinem Fall (1 Sprechsatz ca. 11 sec) war die Abweichung:
- meist unter 0,05 sec -> (würde ich akzeptieren)
- oft 1,5 / 1,6 msec (0,15 / 0,16 sec) -> es ist viel zu viel für einen Satz der nur 11 sec dauert. Meine Auswertung wird dadurch verfälscht.
Diese Abweichung konnte man vielleicht verringern wenn man Treshold um einiges runter dreht. Doch wenn ich da kleinere Wert eingebe in Verbindung mit 5 msec. dann kommt der Meldung:
"Nyqist gab keine Audiodateien zurück"
Ich habe versucht die Werte in deinem Skript zu verändern:
;control silence-level "Treshold" real "dB" 10 0 40
;control hysteresis "Hysteresis" real "dB" 3 1 10
;control minimum-duration "Min. Duration" real "ms" 5 10 500
Doch der Fehlermeldung blieb der gleiche.
Ablauf
Das ganze ließe sich ertragen wenn ich manuell die START / END Punkte genauer stellen konnte aber dann kann ich nicht mehr Protokol Datei anzeigen (mit geänderten manuellen Einstellungen der S/E Punkten). Also Protokol-Datei-Ausgabe wäre ganz am Schluss besser als vorher. Aber lässt sich wohl nicht mehr ändern.
Und automatische Speicherung der Protokoll Datei wäre auch gut (oder zumindest ein SPEICHERN-Button ähnlich wie in Praat).
Anzeige in der Protokolldatei (=Ausgabedatei):
Du wolltest Vorschläge für die Ausgabe Datei? Hier sind Paar Sachen die ich z.B. brauchen würde:
Anzahl der Sprechperioden --> XXX
Anzahl der Pausenperioden --> XXX
Brutto Sprechzeit = Gesamtlänge der Audiodatei wenn vor dem 1. Sprechen und nach dem letztem Sprechen keine Pause vorliegt. --> XXX
Reine Sprechzeit (Netto Sprechzeit) --> XXX (Als Zeitangabe)
Reine Sprechzeit (Netto Sprechzeit) --> XXX (Als Prozentangabe)
Gesamtpausenlänge --> XXX (Als Zeitangabe)
Gesamtpausenlänge --> XXX (als Prozentangabe) (ohne Pausen vor dem 1. und nach dem letzten Sprechen).
So gibt z.B Praat seine Info aus:
intervals: size = 2
intervals [1]:
xmin = 0
xmax = 0.6107324263038549
text = "sounding"
intervals [2]:
xmin = 0.6107324263038549
xmax = 0.7387324263038548
text = "silent"
Solche Angaben können auch nicht stören!
Cool wäre wenn du jede Zeile Nummerierst. Ich lege immer sehr viele von solchen Dateien an (von verschiedenen Patienten) und lasse dann einen PHP-Skript drüber laufen damit er mir die Werte abliest und in MySQL speichert.
Wäre gut wenn man wusste dass z.B. Angaben über "Anzahl der Pausenperioden" unter der Zeile #12# sich verstecken.
#11# Anzahl der Sprechperioden --> XXX
#12# Anzahl der Pausenperioden --> XXX
#13# Brutto Sprechzeit = Gesamtlänge der Audiodatei wenn vor dem 1. Sprechen und nach dem letztem Sprechen keine Pause vorliegt. --> XXX
#14# Reine Sprechzeit (Netto Sprechzeit) --> XXX (Als Zeitangabe)
#15# Reine Sprechzeit (Netto Sprechzeit) --> XXX (Als Prozentangabe)
#16# Gesamtpausenlänge --> XXX (Als Zeitangabe)
#17# Gesamtpausenlänge --> XXX (als Prozentangabe) (ohne Pausen vor dem 1. und nach dem letzten Sprechen).
Praat
In Praat "Praat objekts"-Fenster links auf "Anotate" gehen.
"To TextGrid (silences)..." klicken
Im nächsten Fenster Werte einstellen ind "OK" klicken
In "Praat objekts"-Fenster erscheint jetzt ein neues objekt "TextGrid 1"
Auf "Edit" klicken und es kommt ein Fenster mit Übersicht.
Was mich bei der Sache stört, dass man hier die gefundene Segmente (Pausen- und Sprechperioden) weder hören noch sehen kann (keine oszilloskopische Darstellung). Da ist Audacity schon um einiges besser.
Hier muss ich mich drauf verlassen dass das Programm alles richtig gemacht hat. Oder ich habe hier noch nicht alle Funktionen entdeckt.
Deshalb würde ich schon lieber mit deinem Plugin arbeiten wenn man die Möglichkeit findet die Einstellungen zu ändern "Treshold" zu verringern.
P.S.
Habe versucht dein Script zu verstehen um automatische Speicherung einzubauen, aber.... trotz Referezen (http://www.cs.cmu.edu/~rbd/doc/nyquist/root.html)... die Sprache sieht für mich leider nach nichts aus :-/