• 締切済み

母音認識を行いたいのですが方法が分からなくて困ってます。

現在、母音を識別するプログラムを作っているのですが、デジタル信号処理は初めてなので、あまりよく分からなくて困っています。 現在考えている方法では、 音声信号→自己相関→FFT変換→マッチング処理 という流れで考えているのですが、この方法で上手く母音の識別が行えるか不安です。信号処理に詳しい方、是非アドバイスをよろしくお願いします。

みんなの回答

回答No.1

専門家ではありません。 ハードウエアのフィルターが使えれば、母音だけならもちっと 簡単になるかも。できればフィルタして整形した波形データの 平均値の1周期分をマッチングできれば良いかも。 人は一説によると数十種類の母音を聞き分けられるそうです。 ただし赤ちゃんのうちだけだそうですが(笑)。

xmxwy879
質問者

お礼

ご意見ありがとうございます。参考にさせていただきます。

関連するQ&A

  • 定義とFFTで導出した自己相関が違います

    ある離散信号x(t)の自己相関を求める際に 「定義通りにf(τ)=Σx(t)x(t-τ)で求めた結果」と 「xをFFTしてパワースペクトルを求めて,その逆FFTで求めた結果」 が異なるのですが,当たり前のことでしょうか? 自己相関の畳み込みはFFTの掛け算と同じだと理解していたのですが... 御教授のほどお願いします.

  • 信号長が2の累乗以外のFFTがやりたいです

    信号長が2^n以外で、高速にフーリエ変換することが出来る方法を探しております。 信号処理で、相互相関を扱っています。 しかし信号長が長いため下の関係を用いて、周波数領域で処理しようと思っています。 (xとyとの相互相関関数のフーリエ変換)=(X*)・Y (xのフーリエ変換したものの共役複素数)・(yのフーリエ変換したもの) しかし、信号長が2^nではないためゼロ詰めした場合の相互相関値には誤差が出てしまいます。 ですので、2^n以外の信号長で高速にDFT出来る方法を探しております。 その方法や、解説ページ、プログラムなど、御存じの範囲で構いませんので教えてください。 よろしくお願いします。

  • クロススペクトルを算出する方法

    クロススペクトルを計算して求める具体的な方法についてお尋ねします.2つの時系列があって,各周波数ごとのコヒーレンスとかフェイズを算出して周波数による変化を図示したようなものだと思います. 2つの量をいっぺんに処理するようなので複素数ということになると思いますが.実部,虚部をそれぞれコスペクトル,クオドラチャスペクトルなどと言っていたと思います. さて,そこで質問ですが,1つの時系列でスペクトルを算出するFFTプログラムがある場合,その結果を元にしてクロススペクトルを算出することは可能でしょうか.2つの時系列のそれぞれのスペクトル(振幅,位相)を個別に算出できるプログラムがあり,それらからクロススペクトルを求められないかということです.それともクロススペクトルを求めるルーチンは,2つの時系列を放りこんでそれ専用のFFTのルーチンを経て出力されるものなのでしょうか. スペクトルを求める方法は,FFT, 最大エントロピー,相関関数の変換などいろいろあると思います. FFTだけが手元にあります. よろしくお願いします.

  • C言語FFTからのパワースペクトル表示の質問

    手元にはC言語で作成したFFT/IFFTの処理を行うプログラムがあります。FFT,IFFTともに1次元です。 それを使って、図の信号をフーリエ変換し、パワースペクトルを図示できません。 どうすればいいでしょうか? できたら、結果も含めて教えてください。 詳細は画像を張ります。

  • デジタル信号の周波数分析の手法

    デジタル信号の周波数分析の手法にはどのようなものがありますか? 私が知っているのは、DFT、FFT、z変換だけです。 他にある方法を教えてください。

  • C言語によるディジタル信号処理のお勧めの本やサイト

    C言語を使ったディジタル信号処理でFFT,DFT,ハミング窓,ギブスの現象,FIR(IIR)フィルタなどのいろいろなアルゴリズム,プログラムが載っていてしかも分かりやすかったり,有名な本ってありますか? また,何故その本がお勧めのかの理由も聞かせていただければ大変有難く思います。

  • 複素数と実数が混在するように見える式について

    時系列解析で、自己相関係数のフーリエ変換がパワースペクトルになるというウィナーキンチンの関係というものがあります。その式では複素数が含まれているので、実数を入力として複素数が含まれている式で計算された出力結果は普通は複素数ということになります。しかし、自己相関係数は実数の系列で、パワースペクトルも実数になると思います(実部と虚部の2乗和なので)。実数に複素数を絡ませて変換して出てきたものが実数になるということになってしまいます。ここが理解できないのですが、どのように考えていくのでしょうか。絶対に虚部がゼロになるから、ということなのでしょうか。 一般にFFTによるスペクトル変換では実数列は複素数の実部にあてて変換する(例えば虚部はゼロにしておくとか)ので複素数から複素数を入出力するということで理解できます。 実際にプログラムでの処理を考えているので概念的な説明だけでは実装することできません。 なお、私は常に標準的なFFTでフーリエ変換しているので複素数での入出力ということなので実数となる系列では先に進めないという感じなのですが。もし出力が実数ということになったとき実部がそれ、虚部がそれ、実部と虚部の2乗和がそれ、というのならわかるのですが。 よろしくお願いします。

  • 自己相関関数とパワースペクトル密度関数、フーリエ変換について。

    自己相関関数とパワースペクトル密度関数、フーリエ変換について。 パワースペクトル、パワースペクトル密度と自己相関関数についての質問です。 (tは時間、hは次数、fは周波数として) ある信号x(t)の自己相関関数r(h)をフーリエ変換すると、その信号のパワースペクトル密度関数p(f)になるとネットにあったのですが、パワースペクトル密度関数p(f)と、信号x(t)をそのままフーリエ変換して得たパワースペクトルX(f)はどう違うんでしょうか。 ちなみに数学的な話というよりはコンピュータ上の処理(離散値)で考えています。 もともとパワースペクトルが『自己相関関数の離散フーリエ変換として定義される』と本にはあったのを読みました。 しかし同じ本の中に、『自己相関関数のフーリエ変換は正しくはピリオドグラムと言い、パワースペクトルとはピリオドグラムの平均値で求められる』とも書いてありました。 パワースペクトルとパワースペクトル密度関数はいったいどう違うのか…?とずっと考えているのですが分かりません。 あと(自己、相互)相関関数と(自己、相互)相関係数にはどのような関係があるのですか。回答よろしくお願いします。 前回1つ回答頂いたんですが解決できなかったのですみません、もう一度お願いします。

  • 自己相関関数とパワースペクトル密度関数、フーリエ変換について

    パワースペクトル、パワースペクトル密度と自己相関関数についての質問です。 (tは時間、hは次数、fは周波数として) ある信号x(t)の自己相関関数r(h)をフーリエ変換すると、その信号のパワースペクトル密度関数p(f)になるとネットにあったのですが、パワースペクトル密度関数p(f)と、信号x(t)をそのままフーリエ変換して得たパワースペクトルX(f)はどう違うんでしょうか。 ちなみに数学的な話というよりはコンピュータ上の処理(離散値)で考えています。 もともとパワースペクトルが『自己相関関数の離散フーリエ変換として定義される』と本にはあったのです。 しかし同じ本の中に、『自己相関関数のフーリエ変換は正しくはピリオドグラムと言い、パワースペクトルとはピリオドグラムの平均値で求められる』とも書いてありました。 パワースペクトルとパワースペクトル密度関数はいったいどう違うのか…?とずっと考えているのですが分かりません。 あと自己相関関数と自己相関係数の関係も謎です。 何がどうなっているのか混乱しているので、教えて頂きたいと思いこちらに投稿いたしました。回答よろしくお願いします。

  • フーリエ変換 自己相関

    ある信号を自己相関し、その関数をフーリエ変換するとパワースペクトルが求められますが、 パワースペクトルには位相情報がありません. 自己相関で積分した時点で位相情報が消えてしまうと思うのですが、 ではなぜ、ある信号をフーリエ変換しても位相情報は消えないのでしょうか? フーリエ変換も積分ですよね? フーリエ変換は複素指数関数を使うからでしょうか?

専門家に質問してみよう