• 締切済み

音声解析

Visual C# 2005 Express Editionを使っています。 マイクから入力された音声を、リアルタイムで 周波数分析するプログラムのソースコードは どのように記述すればよいのでしょうか? また、周波数分析した結果から、音程を導きだすには どうすればよいのでしょうか?

みんなの回答

  • Qwerty-36
  • ベストアンサー率25% (58/226)
回答No.1

キーワードはFFTです。

torotoro324
質問者

補足

解答ありがとうございます。 音声をリアルタイムに分析し、波形を読み込み フーリエ変換でスペクトルを表示するところまで 出来ました。 後はこのスペクトルデータ (double型配列) から、音程 (Hz) を導き出したいのですが。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 音声解析のフリーソフト

    音声解析のフリーソフト 大学の授業で音声解析を行っています。 そこで、人が歌う歌を分析して、声紋や周波数の違い、固有周波数帯などを視覚的に理解できるフリーソフトでいいものがあれば是非教えていただきたいです。 ご回答お願いいたします。

  • 動画と音声の処理に強いプログラミング言語は何でしょうか?

    動画と音声の処理に強いプログラミング言語は何でしょうか? カメラとマイクを使った人工知能を持つプログラムを遊び半分で作ってみたいと思っているのですが、どのプログラミング言語で作るかまだ決めていません。 調べたところ、JavaにはJava Media Frameworkなどがありよさそうなのですが、CやC++などにも同じようなものがあるのでしょうか。また他の言語でもっと優れているものはあるでしょうか? プログラミング言語に限らず、音声ファイルをバイナリとして読み込めばいいかもしれませんが、音量や周波数などを取得するために自分でコードを書くのはちょっとつらいのでそれらをしてくれるライブラリがある言語を探しています。また、音声や動画をリアルタイムで処理したいので、それも可能なものがあったら教えて欲しいです。よろしくお願いします。

  • Visual C++ Express Edition でもprintf

    Visual C++ Express Edition でもprintfを使いたい 私は、Visual C++ 2008 Express Editionを使っています。  以前はVisual Studio 2005 Professionalを使っていました。 今まではプログラムを走らせている間の変数の変化を見るために、 printf関数を使って「出力」ウィンドウに数値を表示させていました。 Visual C++ 2008 Express Editionに変更してから、 同一のソースコードをコンパイル、実行しても printf文で記述した出力内容を「出力」ウィンドウに表示させることができません。 これは、Express Edition特有のものでしょうか? printfを使って変数を表示できる方法があれば教えてください。 よろしくお願いします。

  • Audacityの周波数解析

    Audacityというフリーの音声合成ソフトを使い、マイクから音声を入力しました。 その音声を周波数分析し、スペクトラムを表示すると縦軸の単位がdBだったのですが、dBの値がマイナスでした。 マイナスということは基準のdBよりも小さい音だったからなのでしょうが、では基準はなんなのでしょうか?Audacityのページを見ても分からなかったので、ご存じの御方、分かるという御方、お答えいただけると嬉しいです。

  • ファイルの最終行にデータを追加する方法について

    現在、Visual C++2008 Express Editionを用いて 既存のファイルの最終行にデータを追加する簡単なプログラムを作成しています。 しかし、その書き方(ソースコード)がわかりません。 どなたか教えてください。

  • 音を解析???

    専門学校生です。 PICNICを使った課題が出されました。 PICNICを使ったものなら何でもよく、音声処理に興味があるので、音関連のものを作りたいと思っています。 そこで次のようなものを考えたのですが、作れるものなのかどうかを教えていただきたいです。(一番プログラムが不安です) マイクに人の声でドレミと入力したら、スピーカーから楽器の音でドレミと出てくるもの作りたいと思います。 詳しく説明しますと、ドレミという音の高さの声をマイクに入力。その音をPCで解析し、スピーカーから楽器の音でドレミと出てくるようにしたいです。 PICNICも使わなければならない課題なので、どこかで使わないといけません。(マイクもしくはスピーカーと、PCの間にでも使おうかと) 音を解析するにはプログラムを使って、入力音声を、ある周波数ごとに区切りそれを出力しようと思います。 C言語で簡単なソート、リストのプログラムくらいは作れます。C言語を習って来たのですが、別の言語のほうが作りやすそうならそちらの言語を学ぼうかと思います。 四人一班で、製作時間は長くて30時間~40時間くらいの予定です。 そこで質問です。 (1)このようなものは自分たちに作れそうですか?  無理そうなら他のものを作ろうかと思います。 (2)プログラミング言語としてはどのような言語がいいでしょうか?  プログラムもどこから手をつけていいかまったくわかないので、手のつけ方を教えていただきたいです。 (3)作成にあたってアドバイスなどお願いします。  参考になりそうなサイト、書籍等があれば教えていただきたいです。

  • Visual C++ 6.0 で作成したプログラムをVisual C++ 2005 でコンパイルしたい

    visual C++ 6.0 で作成したプログラムがあります。このソースリストをVisual Studio 2005 Express Edition の Visual C++ 2005 Express Editionでコンパイルしようとしましたが、#include <Windows.h> でエラーになって先に進みません。対応したWindows.hの入手方法教えてください。 それとも、そもそも、Visual C++ 2005 Express Editionでは昔のVC++のプログラムはコンパイルできないのでしょうか?

  • 音声(MP3)のサブバンド分解について

    音声データを入力するプログラムをつくっています。 MP3では、データを入力してサブバンド分解するのですが・・・ MP3の本には 例えば、周波数を10Hzずつ分解するなら、 「0~10Hz」「10Hz~20Hz」「20Hz~30Hz」 というように、周波数の高さによって周波数領域に分解します。 「低い周波数領域」「中間の周波数」「高い周波数」となります。 と書いてあるのですが、 この場合、「10Hz」「20Hz」はどちらに入るのでしょうか? 「0~10Hz」「11Hz~20Hz」「21Hz~30Hz」 と考えた場合、 「低い周波数」では「0、1、2、・・・、10」の11つのHz 「中間の周波数」では、「11、12、・・・、20」の10つのHz になってしまい、周波数成分の数が違ってしまいます。 プログラムでデータを扱うので、どうすればよいのか分かりません。 サブバンド分解に詳しい方など、いらっしゃいましたらアドバイスお願いします!!

  • 音声データのリアルタイム処理

    「マイクなどからPCに音声データを入力し そのデータにハイパスフィルタをかけ、リアルタイムでスピーカに出力する」 という課題をC言語かC++を使ってやらなくてはならないのですが、 音声データのCやC++での扱い方といいますか、音声データをどうCやC++に組み込むのかがわかりません。 音声データに何らかの処理をして出力する、というプログラムをCやC++で書くということはできるのでしょうか?何か特別なソフトが必要になってくるのでしょうか?

  • コンデンサマイクによる音声認識

     今、小さなコンデンサマイク(ECMと呼ばれるもの)を使って、音声認識の回路を作りたいと思っています。 また、この音声認識の回路では、コンデンサマイクに入力された音を識別して、音ごとに違う動作をさせるような回路にしたいと考えています。 そして、音声認識はパソコンを使ってではなく、トランジスタや抵抗やICなどの普通の電子部品だけを使って行うようにしたいです。  ですが、電子工作に関する知識があまりないため、どのようにしてコンデンサマイクに入力された音声が送られるのか、 どのようにして音声を識別するのか(周波数の違いを検出するのでしょうか?)、といったことがよく分かりません。  そこで、電子工作の分野にお詳しい方、どのようにしてコンデンサマイクを使った音声認識の回路を作ればいいでしょうか? 音声を識別するまでの過程の回路の説明、音声の送られる仕組み、音声の識別の仕方などを教えていただきたいです。 できれば参考になるホームページなどもありましたらよろしくお願いします。