2017-10-12 1 views
0

Ich muss Sprachproben konvertieren und sie in die Datenbank aufnehmen.Wie kann man am besten eine Stimme aufnehmen und die Frequenzen analysieren?

Ich bin völlig neu in der digitalen Signalverarbeitung und ich kann etwas Hilfe verwenden. Wenn jemand etwas Hand für mich halten kann, wird das sehr geschätzt.

Letztendlich ist das Ziel, die Ausreißer aus den Sprachproben zu finden. Aber um das zu tun, muss ich die Frequenzen und das Hertz erhalten. Aber ich weiß nicht, wo ich anfangen soll.

FYI Ich habe Kenntnisse der meisten Programmiersprachen, Java, Python, Node und Ruby. Tatsächlich werden Codebeispiele am meisten geschätzt. Vielen Dank.

Antwort

1

Es gibt mehrere Möglichkeiten, eine Zeitreihe in ihre Häufigkeiten zu zerlegen. Als Ausgangspunkt würde ich vorschlagen, einige Dokumentationen über die SciPy-Bibliothek zu lesen, und insbesondere scipy.signal, die Signalverarbeitungs-Toolbox in SciPy.

Für eine einfache Analyse der Frequenzen eines Signals, verwende ich gerne die Welch-Methode, wie hier erklärt: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.welch.html. So, da ein Signal x mit Abtastrate Fs, können Sie die Leistung bei jedem Frequenz-Bins erhalten die pwelch Methode, wie dieser (Python 3x):

from scipy import signal 
decomposed = signal.welch(x, fs = Fs) 

# Output is a tuple with frequency bins and the power at each bin 

Sie sollten versuchen, mit optionalen Parametern spielen, je nach die Struktur Ihrer Daten und die gewünschte Auflösung der spektralen Leistungsdichte. Zum Beispiel:

decomposed = signal.welch(x, fs = Fs, nperseg = Fs*4, noverlap = Fs*2) 
Verwandte Themen