WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sprachgrundfrequenz bestimmen

 

Sarah215
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 10.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2011, 10:41     Titel: Sprachgrundfrequenz bestimmen
  Antworten mit Zitat      
Hallo liebe Leute,

ich habe ein Problem mit der Bestimmung der Sprachgrundfrequenz. Ich habe ein Sprachsignal, Sampling Rate 8000 Hz, und möchte gerne davon die Sprachgrundfrequenz bestimmen.
Dies müsste natürtlich irgendwie Fensterweise/Abschnittsweise getan werden....dies ist aber weniger das Problem. Ich weiß aber nicht, wie ich an die Sprachfrequenz kommen soll.
Über die ZeroCrossingRate????

Danke schon mal vorab für Vorschläge!
Private Nachricht senden Benutzer-Profile anzeigen


Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2011, 14:28     Titel:
  Antworten mit Zitat      
Vorschlag:

Du suchst raus, welche Alleinstellungsmerkmale die Sprachgrundfrequenz (So richtig kann ich das deinem Beitrag nicht entnehmen) hat und ich helfe dir dann bei der Findung und evtl sogar zu einer Automatisierung...

Mfg,

Scriptor
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 23.03.2011, 14:36     Titel:
  Antworten mit Zitat      
Hi,

normalerweise ermittelt man die Sprachgrundfrequenz mit Hilfe einer FFT.
Bei 8 kHz Abtastrate arbeitet man sehr gerne mit einer FFT über 256 Samples, d. h. einer Frequenzauflösung von ca. 31 Hz.

Je nachdem, wie genau man es braucht, kann man die Anzahls der Samples erhöhen. Bei 8 kHz könnten auch 1024 Samples meiner Erfahrung nach gut funktionieren (Freq.-Auflösung ca. 8 Hz).

Für eine Online-Analyse sollten die zu analysierenden fenster sich überlappen. Bevor man die FFT ausführt, sollte man außerdem mit einem Hamming-Fenster (oder anderen) die Samples bewerten.

Bei stimmlosen Lauten erhält man natürlich ziemlich unsinnige Werte, denn das Frequenzmaximum kann dann im Bereich bis 4 kHz sein.

Über eine wiederholte Transformation mit Logarithmierung erhält man dann ein Cepstrum, mit dem man entscheiden kann, ob ein Laut stimmhaft oder -los ist.

Grüße
Andreas
Private Nachricht senden Benutzer-Profile anzeigen
 
Sarah215
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 10.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2011, 14:48     Titel:
  Antworten mit Zitat      
danke schon mal für die Antworten...also ich habe mein Signal schon in Hanning Fenster zerlegt und sie auch um die halbe Fensterbreite überlappen lassen.
ich möchte mit der frequenz qualitätsunterschiede in dem sprachsample messen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sarah215
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 10.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2011, 14:58     Titel:
  Antworten mit Zitat      
Meins sieht derzeit so aus:
Code:

[y,Fs] = wavread('XY.wav');
N=round(Fs/50);    %%%Fenstergröße 20ms

%%  Funktionsrelevante Var.
ts=1/Fs;
T=ts*size(y,1);
t=T/size(y,1):ts:T;

%% Preemphase-Filterung
b=[1  -0.95];
a=1;
y=filter (b,a,y);

for m=1:N/2:size(y,1);
    n=m:m+N-1;
    nfft=2^nextpow2(size(y(n),1));
    Y=fft(y(n).*hann(N),nfft);
    amp=abs(Y);
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2011, 15:01     Titel:
  Antworten mit Zitat      
Servus,

Ich habe mal ein paar schnelle Fragen...

mit der Erstellung des Cepstrum, geht es soweit ich weiß auch mit der Erstellung des Autokorrelationsspektrums einher. Welche Rolle spielen dabei die Fenster und wie funktioniert die Zerlegung des Signales mithilfe eines Fensters? Ich hatte hier schonmal einen Fall da ging es um das Kreuzleistungsdichte-Spektrum. Dort konnte man in die Funktion cpsd ein Fenster einfügen, was das Signal in überlappende Teilfenster zerlegt hat, auf Basis dieser Fenster. Ist dies das gleiche Problem hier? Was hat es mit der Zerlegung auf sich? Werden die Einzelfenster noch einmal mit dem Hanning oder anderen gefaltet? Man hatte den Effekt einer Tiefpassfilterung/Signalglättung. Was heißt diese Zerlegung und wie werden sie wieder zusammengefügt? Mit Bewertung ist denke ich eine AKF oder KKF gemeint...

Mfg Ich
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.