Prototyp 1
Build-Verfahren
Im Repository ist jetzt ein Build-Tool integriert (
ant). Nach dem Aktualisieren (
cvs update -d
) kann mit einem Aufruf die fertige Anwendung kompiliert werden.
Befehl |
Aktion |
build/bin/ant compile |
Kompilieren. Die class-Dateien landen im Verzeichnis build/classes |
build/bin/ant run |
Die Anwendung starten |
build/bin/ant clean |
Temporäre und Arbeitsdateien löschen |
build/bin/ant javadoc |
API-Dokumentation generieren im Verzeichnis doc/api |
Die Quelldateien werden zurzeit aus verschiedenen Orten zusammenkopiert, bevor das Kompilieren beginnt. Sollen neue Quelldateien aus dem Repository in diesen Prozess einbezogen werden, müssen diese in der Datei
build.xml
, die den Build-Prozess steuert, ergänzt werden.
Voraussetzungen
Normalerweise sollte die Anwendung nach
build/bin/ant run
laufen.
Java 1.4 und die HTK-Tools müssen im Pfad sein, Näheres dazu in
README.build
im Repository.
Soll die Anwendung in einer Umgebung getestet werden, wo das HTK-Paket nicht installiert ist (zum Beispiel zu Hause), kann man in der Datei
build.xml
eine Zeile auskommentieren (s. dort) und auf einem nats-Rechner einen HCopy-Server starten. Das geht mit dem Aufruf von
java -cp build/classes speakerid.util.HCopyServer 3344 "perl util/wav2feat.pl"
vom Verzeichnis
speakerid
aus. Danach steht auf Port 3344 ein Server bereit, der eingehende Wave-Dateien in .feat-Dateien umwandelt und zurückschickt. Zum Zugriff auf diesen Port von außen muss ein ssh-Tunnel von der lokalen Testumgebung (z.B. zu Hause) zum nats-Rechner eingerichtet werden. In der Klasse
speakerid.util.FeatureExtractor
wird dann bei einem Aufruf der Feature-Erzeugung eine Verbindung zum HCopy-Server aufgebaut, anstatt zu versuchen,
HCopy
lokal zu starten.
Code-Anpassungen
Um den Prototypen zum Laufen zu kriegen, mussten verschiedene Stellen im Verzeichnis
speakerid/AufnahmeTool11.06.04
angefasst werden. Unter anderem bereitete die Nebenläufigkeit der Aufnahme-Threads Probleme, die fürs Erste mit kleinen Kniffen umgangen worden sind. Alle Änderungen sind im Code mit
PROTO!
gekennzeichnet.
Merkmalsextraktions-Konfiguration
Die aktuelle Konfiguration für die Merkmalsextraktion (also für den HCopy-Aufruf) wird in der Datei
speakerid/featurefiles/hcopy_config
erwartet. Die jetzige Version wurde aus
speakerid/featurefiles/2004-05-14_2/config1
übernommen.
Einschränkungen
- Der individuelle Schwellwert ist immer der Abstand der beiden Aufnahmen
- Erkennen nur möglich, wenn man einer Probe ähnlicher ist als die Proben sich gegenseitig
- Sinnvolle Schwellwertbestimmung nötig (bzw. Entscheidung: "Nein, Ihre Proben sind zu unterschiedlich!")
- Fehlerbehandlung