• ベストアンサー

音を解析???

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

質問者が選んだベストアンサー

  • ベストアンサー
  • kusa_mochi
  • ベストアンサー率76% (1597/2087)
回答No.2

ちょっと大変かもしれないが、出来なくは無いと思う。 言語はC言語でいいと思う。 PICNICとは下記URLで出てくるものかな?  http://ysserve.int-univ.com/sugsi/Lecture/picnic/links.html#Microchip 概要は以下の感じで。  ・音源&テスト担当者を1人決めて、その人にドレミファソラシドまでの8音を単音で発声して貰い、サンプリングデータを取りFFT(高速フーリエ変換)でその単音の周波数解析をする  ・8音分の周波数解析が出来たら、どの様な周波数傾向の違いが有るかチェックし、入力された音が8音のどれに該当するか切り分けるロジックを考える  ・PICNICは使うとしたら、スピーカーのコントロールで  ・処理のシーケンスは、    音の入力→FFTで周波数解析→8音のどれに該当するか判定→該当する音程をスピーカーから鳴らす   という感じかな C言語から、FFTのサンプルプログラムも探せば見つかるのではないかなと。  【参考:FFT】   http://www.gem.hi-ho.ne.jp/katsu-san/audio/fft.html

その他の回答 (3)

noname#66624
noname#66624
回答No.4

ANo3です >PICNICを使った課題が出されました。 単なる思い付きですが・・・ 複数同時音声認識、いわば聖徳太子のコンピュータ版です 音声信号を解析してどんな音源か識別する 音源単位で更に『言葉』もしくは『音の発生源』を解析する これを何らかの形で表現する ・人が複数 ・人・音楽 ・人・猫・電車

noname#66624
noname#66624
回答No.3

この辺を利用すればゼロから作る必要もないでしょう http://www.tristate.ne.jp/picnic/menu.html

bu---
質問者

補足

http://oshiete1.goo.ne.jp/qa3996837.html ここに新たに質問させてもらいましたが、カラオケなどの音楽機材についているメーターなどから何か使えそうな方法はないでしょうか?

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

PICNICが何か分かりませんが、作ろうとしている プログラムはテーマとしてかなり難易度が高いと 思います。 ノイズキャンセラーなどでも、マイクで入力した 音の波の逆位相の音を作る「だけ」ですが、とても 40時間×4人で出来る代物とは思えません。 音が正弦波のような綺麗なものだけならロジック でも可能ですが、通常、音はロジックでの解析は かなりのCPUを使用するので事実上不可能なのだと 思います。 その代り、音のパターンのテーブルを用意しておき パターン認識の技術で音を解析していくのだと思い ます。このテーブル作りだけで気が遠くなりそうで すね。私が知らないだけで、なにかトンチのような 上手い手があるのかもしれませんけど。

bu---
質問者

お礼

回答ありがとうございます。 ちょっと厳しそうですが、もう少し簡単にできる方法がないか探してみたいと思います。