Bestimmen, wie ähnlich Audio der menschlichen Sprache ist


12

Auf der Suche nach einer Antwort auf dieses Problem habe ich festgestellt, dass dieses Board diese Frage von Stack Overflow gekreuzt hat .


Ich suche nach einer Methode zur Bestimmung der Ähnlichkeit zwischen einem Audiosegment und einer menschlichen Stimme, die numerisch ausgedrückt wird.

Ich habe ziemlich viel gesucht, aber was ich bisher gefunden habe (siehe unten), passt nicht wirklich zu dem, was ich brauche:

  • Eine Methode besteht darin, Spracherkennungssoftware zu verwenden , um Wörter aus einem Audiosegment zu erhalten. Mit dieser Methode lässt sich jedoch nicht feststellen, wie "ähnlich" Audio der menschlichen Sprache ist. es kann oft sagen, ob das Audio Wörter enthält oder nicht, aber wenn es keine bestimmten Wörter gibt, kann es nicht sagen, ob das Audio solche Wörter enthält oder nicht.
    Beispiele: CMU Sphinx , Dragonfly , SHoUT

  • Die vielversprechendere Methode wird als Voice Activity Detection (VAD) bezeichnet. Dies hat jedoch tendenziell dieselben Probleme: Die Algorithmen / Programme, die VAD verwenden, geben in der Regel nur zurück, ob die Aktivitätsschwelle erreicht wurde oder nicht, und es gibt keinen "Ähnlichkeit" -Wert vor oder nach dieser Schwelle. Alternativ suchen viele nur nach Lautstärke, nicht nach Ähnlichkeit mit menschlicher Sprache.
    Beispiele: Speex , Listener , FreeSWITCH


Irgendwelche Ideen?


1
Aus Ihrer Frage geht nicht hervor, ob Sie ein Problem haben: Nehmen Sie eine Audioaufnahme auf und sagen Sie, ob diese menschliche Sprache enthält oder nicht. oder B / Spracheingabe nehmen und sagen, wie ähnlich es einem Referenzaudiosegment klingt. Falls es B ist, an welchen Kriterien möchten Sie die Ähnlichkeit messen? Auf Melodiekontur? (zB: Zuordnen einer gesungenen Stimme zu einem Lied). Auf Rhythmus- und Clusterklassen? (zB: Beatboxing / Onomatopoeia auf einen Drum-Loop abstimmen). Auf Timbre? (Stimmen an Soundeffekt anpassen). Bitte teilen Sie uns Ihre Bewerbung mit.
Pichenettes

Entschuldigung, mein Problem ist das, was Sie in A beschrieben haben. Ich möchte feststellen, ob es sich bei einem Audiosegment um menschliche Sprache handelt.
Jeff Gortmaker

1
Ich habe an einem verwandten Problem gearbeitet - ich habe versucht festzustellen, wann die Geräusche des Schnarchens / Atmens durch Sprache oder Musik "verschmutzt" wurden. Es ist frustrierend schwierig, mit irgendeiner Zuverlässigkeit umzugehen, und ohne auf "fortgeschrittene" Spracherkennungsalgorithmen zurückzugreifen (wenn sie tatsächlich sogar funktionieren würden). Meine einzige Beobachtung wäre, dass Sprache einen unregelmäßigen Rhythmus hat, während Musik (normalerweise) regelmäßig ist. Das und vielleicht "spektrale Ebenheit" ist es wert, überprüft zu werden (ich bewerte immer noch seine Vorzüge für meine Zwecke).
Daniel R Hicks

(Noch ein paar Details: Ich finde, dass die normalisierte Standardabweichung der spektralen Ebenheit, die aus der FFT des Audios berechnet wird, etwas von der Audioqualität widerspiegelt.)
Daniel R Hicks,

Antworten:


6

Diese Art von Problem wird normalerweise durch maschinelles Lernen gelöst.

Teilen Sie das Signal in eine Sequenz von 20 ms oder 50 ms Frames auf. Extrahieren Sie Features für jeden Frame. MFCC eignen sich im Allgemeinen gut für diese Art von Anwendungen, obwohl es speziellere Spracherkennungsfunktionen gibt (4-Hz-Modulationsenergie - ungefähr die Rate, mit der Menschen sprechen; Nulldurchgangsrate).

Trainieren Sie dann mithilfe eines von Ihnen manuell als Sprache / Nicht-Sprache gekennzeichneten Audiotrainingssatzes einen Klassifikator (Gaußsche Mischungsmodelle, SVM ...) für die Frame-Features.

Auf diese Weise können Sie unbeschriftete Frames in Sprach- / Nichtsprachklassen einteilen. Der letzte Schritt besteht in der Glättung der Entscheidungen (ein Rahmen, der als Nichtsprache klassifiziert ist und von Hunderten von Sprachrahmen umgeben ist, ist wahrscheinlich ein Klassifizierungsfehler), beispielsweise unter Verwendung von HMMs oder nur eines Medianfilters.

Einige Referenzen:

Robuste Sprach- / Musikklassifizierung in Audiodokumenten (Pinquier & al) Sprach- / Musikunterscheidung für Multimediaanwendungen (El-Maleh & al) Ein Vergleich der Funktionen für Sprach- / Musikunterscheidung (Carey & al)

Beachten Sie, dass die beschriebenen Merkmale und Klassifizierungstechniken auch für das 1-Klassen-Problem der Spracherkennung relevant sind (anstatt Sprache von etwas anderem zu unterscheiden). In diesem Fall können Sie 1-Klassen-Modellierungstechniken wie z. B. 1-Klassen-SVM verwenden oder einfach den Likelihood-Score aus einem auf Sprachdaten trainierten GMM als "Sprechen" -Maß nehmen.

Wenn Ihr Problem andererseits darin besteht, Sprache wirklich von etwas anderem zu unterscheiden (z. B. Musik), können Sie auch unbeaufsichtigte Ansätze verwenden, die darauf abzielen, die Grenzen zwischen ähnlichen Audio-Inhalten zu erkennen, anstatt diese Inhalte selbst zu identifizieren.


Danke, das hilft einer Menge! Was bringt es, das Signal in kleine Fenster zu zerlegen? Da der von mir gesuchte Ausgang ein numerischer Wert ist, der das gesamte Audiosegment beschreibt, ist es besser, Features für das gesamte Signal und nicht nur für bestimmte Fenster zu extrahieren?
Jeff Gortmaker

Das Berechnen der Merkmale (insbesondere der spektralen oder cepstralen) über sehr lange Fenster würde einige der Eigenschaften, die Sprache hervorheben, mitteln oder aufheben. Sie können dies selbst überprüfen, indem Sie viele kurze Sprachfragmente zusammenmischen. Es wird schwierig sein, das Ergebnis als Sprache zu erkennen. Es ist daher besser, die Klassifizierung für kleine Segmente durchzuführen. und aggregieren Sie in Ihrem Fall die Bewertungen (berechnen Sie beispielsweise den Durchschnitt der von einem GMM angegebenen Wahrscheinlichkeitsbewertung oder den Prozentsatz der von einem Binärklassifizierer als Sprache klassifizierten Frames).
Pichenettes

Um genauer zu sein, denken Sie daran, dass die zeitliche Dimension beim Betrachten eines Spektrums "zusammengebrochen" ist. Beispielsweise ist das Leistungsspektrum eines 500-Hz-Tons, dem zeitlich ein 1-kHz-Ton folgt, dem Leistungsspektrum dieser beiden gleichzeitig gespielten Töne ähnlich; Daher ist das Leistungsspektrum eines Signals, das sich über ein langes Fenster stark ändert, möglicherweise nicht sehr repräsentativ für den Signalinhalt.
Pichenettes
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.