• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Windowsでオーディオ解析)

Windowsでオーディオ解析

kiyomushiの回答

  • ベストアンサー
  • kiyomushi
  • ベストアンサー率68% (13/19)
回答No.1

Windows には複数の種類のオーディオ・ドライバ・モデルがあるため、どの PC のどのアプリの出す音でも取得できる完全なものを作るのは、すごーく難しいと思います (オーディオ・ドライバーを自作すれば、ある程度できるかもしれませんが)。 なので、若干 S/N は落ちますが、PC のオーディオ・ライン出力をオーディオ・ライン入力にアナログ的にケーブル接続して、普通に録音してしまうのが一番簡単かつ確実です。これならオーディオ回りのライブラリは要りません。 FFT は、私のいる会社では大浦先生のルーチンを使っている人が多いです。 http://www.kurims.kyoto-u.ac.jp/~ooura/fft-j.html ただし、実数波形の FFT ルーチンは、Nyquist 周波数成分を結果のスペクトルの DC の虚部に入れて返す点に注意が必要です。

参考URL:
http://www.kurims.kyoto-u.ac.jp/~ooura/fft-j.html
Falcon2
質問者

お礼

早々の回答ありがとうございます。 知識が足りないためインラインの録音については、下記URLが参考になりそうなのでさらに調査を進めています。 http://nky-tech-sdt.blogspot.jp/2009/08/windows-multimedia-audio.html >実数波形の FFT ルーチンは、Nyquist 周波数成分を結果のスペクトルの DC の虚部に入れて返す点に注意が必要です。 忠告ありがとうございます。

関連するQ&A

  • FFTを使って異なるサンプリング周波数での周波数強度について

    100Hzのsin波に対してFFTを行い周波数スペクトルを出したときのことです。 解析条件 サンプリング周波数・・・・44.1kHz , 22.1kHz FFTの点数・・・32768点 窓関数・・・ハニング窓関数 まず、サンプリング周波数44.1kHzで解析を行い、100Hzにメインローブが現れていました。 次に、サンプリング周波数22.1kHz以外は同様の解析条件で解析を行ったのですが、サンプリング周波数44.1kHzに比べて、100Hzのスペクトル強度が下がっていました。また、サイドローブは44.1kHzに比べて上がっていました。 スペクトル強度がサンプリング周波数によって変化するというのはありえるのでしょうか? それとも、私の組んでいるプログラムが間違っているという事なのでしょうか?どなたかご教授下さい。よろしくお願いします。

  • 拍手の間隔を解析で求めるには?

    等間隔で発生している衝撃音の間隔を、解析的に求めることはできるでしょうか?たとえば、拍手をしている周期であったり、太鼓を叩いている周期を演算で求めたいと思っています。もちろん、時間波形の間隔から周期を読み取ることはできますが、より周波数解析的な手法で求まらないかと考えています。音をPCに取り込んでFFT解析を行っても、拍手や太鼓一発の音そのものの周波数(数1000Hz)は算出されても、叩いている間隔(数Hz~10数Hz)は算出されません。FFT点数やウインドウ関数などをいろいろと変えてみましたが、結果は同じでした。ノイズはほとんどないものと仮定して結構です。どなたか教えていただけないでしょうか?

  • パワースペクトルについて

    こんばんは。 現在FFT、スペクトル解析等を独学で学んでいます。 以前、FFTからパワースペクトルについてと、スペクトルアレイについて質問させていただきました。それについてまた新たに疑問が浮かんできたので、再度いくつか質問させてください。 測定内容は「音」に関します。 (1)FFTでパワースペクトルを求めた時、横軸はHz、縦軸はパワーでよいのか。 (2)スペクトルアレイの場合、(1)の図表に時間軸を加えた三次元表記という解釈でよいのか。 以上の2点について解説していただきたいです。 よろしくお願いします。

  • FFT フーリエ変換 について

    FFTについて質問があります。 あるシミュレーションのために ・サンプリング周波数48kHz ・量子化24ビット ・1kHzのサイン波 のデータを作って、それをFFTにかけてみると 裾野が広がり、フロアの高いスペクトラム となってしまいました。(データは4096ポイント、Hanning窓) ポイント数が少ないことによる劣化だと考え、データポイントを 65536ポイントで取ってみると綺麗なスペクトラムとなっており、 データの作り方としては間違っていないのではないかと考えています。 一般的にFFTはデータポイントが多い方が、FFTをとったときに、 裾野広がらず、シャープなスペクトルを得ることはわかっています。 が、そこを何とか少ないポイント数で綺麗なFFTを得られるような 入力データは作れないものでしょうか? 出所は不明ですが、私の持っている別のデータを入力として用いると 少ないポイントでも綺麗なFFTを得ることが出来ているので、 何かデータを作るコツのようなものがあると思って投稿させて いただきました。 どなたか詳しい方がいらっしゃいましたら、ご教授お願いします。

  • FFTプログラムで問題が生じました。

    C言語でFFTのプログラムを作成しています。入力として周波数の既知な正弦波を利用してプログラムの動作確認をしているのですが、サンプリング周期0.01secの状態でサンプリング数が4096点と8192点の時だけスペクトルの結果がおかしくなってしまいます。例えば、10Hzの入力に対して他の点数(512~32768点)では、きちんと10Hzの位置にスペクトルが現われるのですが4096点と8192点の時は、10Hzの他に同じ大きさの40Hzのスペクトルが現われてしまいます。入力が5Hzの時は、45Hzに現われます。ちょうど折り返し雑音のような誤作動なので何か明確な原因があるのではないかと思うのですが全く分かりません。このようなことはよくあるのでしょうか?それとも単にプログラムのミスでしょうか。回答お願いします。

  • パワースペクトルの0dBの値について

    matlabを用いて時系列データのパワースペクトルを計算、対数表示でグラフにプロットしています。 matlabのfft関数のヘルプに記載されていた例を参考に、以下のような自作の関数を組んで計算しているのですが、2つ質問があります。 1. この場合、パワースペクトルの0dBは、時系列の値ではいくつになるのでしょうか? 0dB = 1でしょうか? 2. 関数の中において、power_fftをN_fft(高速フーリエ変換時のデータ長さ)で割っている事の理由がわからなかったのですが、なぜ行っているのでしょうか? ------------------------------------------------ 以下、自作のパワースペクトル表示関数を示します function Power_db(Data_xx) fs = 1000; % サンプリング周波数 [Hz] N_fft = 2^12; % 4096個 xx_fft = fft(Data_xx,N_fft); power_xx = xx_fft.* conj(xx_fft) / N_fft; frequency = fs*(0:2047)/N_fft; % (0:2047)で500Hzまで plot(frequency,20*log10(power_xx(1:2048))) xlabel('Frequency [Hz]'); ylabel('Power Spectrum [dB]'); grid on; --------------------------------------------------------- 以上です。 何か足らない情報などがありましたらお申し付けください。 よろしくお願い致します。

  • 再生停止した部分の音を鳴らし続けるには。

    車のエンジン音をサンプリングした物をAudacityに取り込んで編集しております。 用途はレースゲームのエンジン用のサウンドです。 一定のピッチで途切れる事無く違和感無くループ再生したかった為サンプリングするエンジン音はなるべく一定になるようにしましたが微妙にピッチが変化してしまいました。 その為ピッチ変動の少ない1秒程を選定→コピーして前後を反転→コピー前の部分に貼り付ける といった作業を行う事である程度までは改善する事ができました。 ですがやはり完全には一定の音とすることができません。 また、音のつなぎ目にどうしても小さくクラックルノイズの様なノイズが入ってしまいます。 テンポの変更も試しましたが、遅くしすぎると音が波打つ状態となり使えませんでした。 そこでサウンドを再生中に一時停止を行い、停止した部分の音を鳴らし続ける事ができれば完全に一定の音がサンプリングできるのではと考えました。 例えば音楽を聞いていてOSがフリーズ→フリーズした部分で一定の状態で音が鳴り続ける状態をイメージしていただければ分かり易いかと思います。 Googleで検索してみましたがテンポの変更方法や音量の一定化についてばかりしかヒットしませんでした。 誰も質問しそうに無い事で申し訳ありませんが、改善策を提供していただける方がいらっしゃいましたらご教授の程宜しくお願い致します。

  • オーディオの出力について

    PCのオーディオ出力についてなのですが、KMPlayerでファイルを再生したときに再生している音はHDMIで繋いだスピーカー付きモニターで再生、その他の音(Windowsのシステム音やブラウザで見るyoutubeなどの音)は3.5mmのピンジャックで繋いだスピーカーで再生したいのですが、可能なのでしょうか? いろいろ調べてはみたものの調べ方が悪いのかまったくわかりませんでした。 どうか御教授お願いいたします。

  • 録音ソフトのサンプリング周波数

    wavファイルをwindows Media playerで再生しながらPC録音ソフト「Moo0 音声録音機 (32ビット 無料版) 1.47」でファイル形式wavで録音しました。録音結果のサンプリング周波数が再生ファイルと違ってました。録音ソフトにはサンプリング周波数設定機能はありません、何故でしょうか? ・PC Windows7 32bit ・再生wavファイルのサンプリング周波数 44.10kHz ・録音wavファイルのサンプリング周波数 192.00kHz

  • FFTの計算結果について

    FFTについて勉強しています。 「教えてgoo」でFFTで、検索したら、 http://momonga.t.u-tokyo.ac.jp/~ooura/fft-j.html の、計算パッケージが良いと分かったのですが、計算結果の、読み方?が、分かりません。fftsg.c か、fft8g.c を利用して、計算結果を利用してグラフを描こうと考えています。それで、質問なのですが、 1.サンプリング周波数 44.1KHz  16ビットで 8192個のデータを計算させた場合、計算値として得られる、配列は、周波数の小さい順に並んでいるらしいことは、分かるのですが、それぞれのデーターの周波数は、どうなっているんでしょうか?  単純に0Hzから22050Hzを8192で、割った小さい順で良いのでしょうか? 2. また、パワースベクトルは、どの様に計算したらいいのでしょうか? 20log絶対値 で、良いのでしょうか?  よろしくお願いします。