Segmente identifizieren, wenn eine Person spricht?

8

Kennt jemand eine (vorzugsweise C # .Net) Bibliothek, die es mir erlaubt, in Sprachaufnahmen diejenigen Segmente zu finden, in denen eine bestimmte Person spricht?

    
Avi 27.11.2011, 10:33
quelle

2 Antworten

18

Es ist möglich mit dem Toolkit SHoUT: Ссылка

Es ist in C ++ geschrieben und für Linux getestet, aber es sollte auch unter Windows oder OSX laufen.

Das Toolkit war ein Nebenprodukt meiner Doktorarbeit zur automatischen Spracherkennung (ASR). Die Verwendung für ASR selbst ist vielleicht nicht so einfach, aber für die Sprachaktivitätsdetektion (SAD) und die Diarisierung (das Finden aller Sprache einer bestimmten Person) ist es ziemlich einfach zu verwenden. Hier ist ein Beispiel:

  1. Erstellen Sie eine kopflose PCM-Audiodatei mit 16 kHz, 16 Bit, Little Endian, Mono. Ich benutze ffmpeg, um die Raw-Dateien zu erstellen: ffmpeg -i [INPUT_FILE] -vn-acodec pcm_s16le -ar 16000 -ac 1 -f s16le [RAW_FILE] Präfix die Headerless-Daten mit kleinen Endian-kodierten Dateigröße ( 4 Bytes). Stellen Sie sicher, dass die Datei die Erweiterung .raw aufweist, da shout_cluster den Dateityp anhand der Erweiterung erkennt.

  2. Führen Sie Sprach- / Nicht-Sprachsegmentierung durch: ./ shout_segment -a [RAW_FILE] -ams [SHOUT_SAD_MODEL] -mo [SAD_OUTPUT] Die Ausgabedatei liefert Ihnen Segmente, in denen jemand spricht (mit "SPEECH" bezeichnet. Natürlich, weil alles automatisch gemacht wird, kann das System Fehler machen ..), in denen es einen Ton gibt, der nicht Sprache ist (" SOUND ") oder Stille (" SILENCE ").

  3. Diarisierung durchführen: ./ shout_cluster -a [RAW_FILE] -mo [DIARIZATION_OUTPUT] -mi [SAD_OUTPUT] Anhand der Ausgabe des shout_segments wird versucht, zu bestimmen, wie viele Lautsprecher in der Aufnahme aktiv waren, jeden Lautsprecher zu kennzeichnen ("SPK01", "SPK02" usw.) und dann alle Sprachsegmente von jedem der Lautsprecher zu finden.

Ich hoffe, das wird helfen!

    
Marijn Huijbregts 28.11.2011, 08:08
quelle
2

Während die obige Antwort korrekt ist, habe ich ein Update auf das Installationsproblem, das mir während der Installation von SHoUT unter Linux passiert ist. undefined reference to pthread_join , dessen Lösung ich gefunden habe, war, configure-make.sh aus der SHoUT-Installations-Zip zu öffnen und die Zeile zu ändern

%Vor%

bis

%Vor%

HINWEIS Der lpthread , der auf Linux-Systemen in pthread geändert werden soll.

Betriebssystem: Linux Mint 18 Wo SHoUT Version: Release-2010-Version-0-3

    
Muhammad Ahmad Mujtaba 11.12.2016 16:43
quelle

Tags und Links