タグ付けされた質問 「audio」

オーディオ、または信号処理の観点から見ると、オーディオ信号は、通常は電圧としての、音声のアナログまたはデジタル表現です。

1
離散フーリエ変換-基本をすばやく見つける?
まず、私は謝罪します。私はソフトウェア開発者であり、純粋な数学に飛び込んでいないのは非常に長い期間なので、私の質問は馬鹿げているように見えるかもしれません。私は望みません。 コンテキストは、音楽のピッチ認識です。 音符を取り、それにフーリエ変換を適用すると、特定の周波数の振幅の合計が無限になります。たとえば、任意の楽器で基本がである音符を演奏すると、フーリエ変換後、F 、2 F 、3 F 、… 、n Fで高調波が発生します。すべての周波数には、楽器の音色を定義する特定の振幅があります(ピアノ、声、トランペットなどすべてはこの音に従いますが、すべての倍音に対して異なる振幅があります)。FFFF、2 F、3 F、… 、n FF、2F、3F、…、んFF, 2F, 3F,\ldots,nF 今私がしたいのは、与えられたオーディオ信号からです、見つけます。それだけ。常にバックグラウンドノイズなどがあるため、見た目よりも複雑です。さらに、Fは必ずしも最大の振幅を持つ周波数である必要はありません。FFFFFF したがって、を見つけるための私のアイデアは、DFT(実際には速度のFFT)を適用し、周波数Fを見つけることです。これにより、F + 2 F + 3 F + … + n FがFFT出力で最大になります。FFFFFFF+ 2 F+ 3 F+ … + n FF+2F+3F+…+んFF + 2F +3F + \ldots + nF それは可能だと思いますか?それは非常に短い時間で可能だと思いますか(<5ミリ秒としましょう)?
9 audio  fft  pitch 

1
周波数変調合成アルゴリズム
私が読んだ内容に基づいて、FMサウンド合成のアルゴリズムを作成しました。正しくできたかどうかはわかりません。ソフトウェアシンセ楽器を作成する場合、関数を使用して発振器を生成し、変調器を使用してこの発振器の周波数をモジュール化できます。FM合成が正弦波の変調にのみ機能すると想定されているかどうかはわかりませんか? アルゴリズムは、計測器の波動関数と、周波数変調器の変調器インデックスおよび比率を使用します。各ノートでは、周波数を受け取り、キャリアと変調器の発振器の位相値を保存します。変調器は常に正弦波を使用します。 これは疑似コードのアルゴリズムです: function ProduceSample(instrument, notes_playing) for each note in notes_playing if note.isPlaying() # Calculate signal if instrument.FMIndex != 0 # Apply FM FMFrequency = note.frequency*instrument.FMRatio; # FM frequency is factor of note frequency. note.FMPhase = note.FMPhase + FMFrequency / kGraphSampleRate # Phase of modulator. frequencyDeviation = sin(note.FMPhase * PI)*instrument.FMIndex*FMFrequency …

2
時間データのパターン認識
音声以外の音を検出して分類しようとしています。現在、私は探している機能として、トレーニングサウンドからの一連の移動するオーバーラップしたパワースペクトルを使用しています。 分析を行うときは、フィーチャの数が同じになるように、オーバーラップしたスペクトルの同じ量を計算しています。現在、パフォーマンスはあまり良くなく、無音か非無音かを検出することしかできません。 このタイプの信号検出にはどのような技術がありますか?私の懸念の1つは、時間領域で音の長さが異なると、特徴ベクトルの長さが異なるため、同じ分類子を使用できないため、こだわっていることです。
9 audio 

1
通話音声を無音/無音に分割する方法は?
私の問題は、バックグラウンドノイズのエネルギーがわからないことです。そのため、エネルギーをしきい値処理することはできません。処理はリアルタイムで行われ、500msec程度で判断します。理想的には、私は静かな子音が無音でないと考えたいです。

2
勾配ベースのハフ変換を実装する方法
私はエッジ検出にハフ変換を使用しようとしています、そして基礎として勾配画像を使用したいと思います。 私はこれまでやっていること、画像所与のIサイズの[M,N]とその偏導関数gx、gy、各画素の勾配角度を計算することですthetas = atan(gy(x,y) ./ gx。同様に、勾配の大きさをとして計算しmagnitudes = sqrt(gx.^2+gy.^2)ます。 ハフ変換を作成するには、次のMATLABコードを使用します。 max_rho = ceil(sqrt(M^2 + N^2)); hough = zeros(2*max_rho, 101); for x=1:M for y=1:N theta = thetas(x,y); rho = x*cos(theta) + y*sin(theta); rho_idx = round(rho)+max_rho; theta_idx = floor((theta + pi/2) / pi * 100) + 1; hough(rho_idx, theta_idx) = hough(rho_idx, theta_idx) + …

3
正弦波のFFT結果を確認するにはどうすればよいですか?
FFTアルゴリズムへの入力として、オーディオファイル(正弦波)1000Hzが与えられました。アレイに8192のパワースペクトルサンプルがあります。 出力が正しいか間違っているかを確認する最も簡単な方法は何ですか? サイレントオーディオファイルを指定すると、すべてのサンプルの出力がゼロになります。サイン波では、o / pは20(0番目のサンプル)から26059811(743番目のサンプル)に増加し、徐々に40に減少します。 出力範囲がわかれば、FFTが機能しているかどうかを技術的に証明できます。 どんなアイデアも役に立ちます。 技術的な疑問については、このリンクを参照してください。
9 fft  audio 

1
携帯電話のリアルタイムオーディオで人間の音声を検出する
Androidアプリの開発を検討しています。機能の一部として、アプリは3〜5秒の音声をランダムにサンプリングし、人間の音声が含まれているかどうかを分類する必要があります。この概念が音声アクティビティ検出と呼ばれていることを理解していますか? これを携帯電話に実装する最良の方法は何でしょうか。エネルギーベースの機能としきい値を使用して基本的なシステムを開発しました。MFCCやフォルマントなどの機能を使用して、ノイズの影響を受けにくいものを見つけたいと思っていますか?私はいくつかの論文を読みましたが、それらのほとんどはデータの収集とモデルのトレーニングを必要とします。リアルタイムで動作するライブラリやフレームワークはありますか?

2
ストリーミングオーディオのフィルタリング
103データポイント()のようなものが与えられると、DFTは103周波数値を返します。次に、高周波のフィルタリングなどを行うには、DFTの高周波値をゼロに設定し、逆DFTを実行して、高周波のない元の信号を表す103データポイントを取得します。N=103N=103N=103 これは、103のすべてのデータポイントを一度に与えた場合、私には意味があります。しかし、かなり大きいオーディオWAVファイルのストリーミングについてはどうでしょう(たとえば、)。高周波をフィルタリングしたい場合は、10 5ポイントのデータ全体について説明したアプローチが論理的に理にかなっています。しかし、再生のためにWAVファイルをストリーミングする場合、これは妥当ではありません。オーディオファイルのストリーミング再生を高周波フィルター処理するにはどうすればよいですか?N=105N=105N=10^510510510^5

2
short int(16ビットPCM)サンプルのローパスフィルタリング
16ビットPCMサンプルとして与えられたオーディオを処理するソフトウェアを書いています。処理の最初の段階では、特定の周波数範囲(特定のカットオフ周波数より上)のエネルギー(または総変動)を計算します。 私が現在行っていることは、元の信号のエネルギーからローパスフィルター処理された信号のエネルギーを差し引くことです。多くの処理が整数サンペルを浮動小数点表現に変換することに専念していることがわかりました。 だから私の質問は、整数サンプルを浮動小数点に変換せずにフィルタリングするための技術はありますか?

2
オーディオ入力/スペクトルを正しく分析する方法
私はJavaと信号処理にかなり慣れていますが、オーディオ処理を扱うプロジェクトが割り当てられました。私に与えられたトピックは、曲(任意の曲)を分析するコンポーネントを持ち、現在再生されている周波数(リアルタイム)に応じてデータを出力するゲームです。つまり、曲が再生されると、現在の周波数が出力されます(1秒ごとに現在の周波数が出力されます)。 Stackoverflowで FFTを使用するように言われました。彼らは「ただFFTをする」と言いますが、それは私には何も意味しませんか?どのようにFFTを行いますか?私はチュートリアルを読み、基本的にそれが何であるかを理解していますが、次のようにそれを実装する方法についての手がかりはありません。 そのような処理に最も適したオーディオファイルのデータタイプは何ですか? FFTの入力は正確には何ですか 結果を解釈する方法 誰かがオーディオ信号を処理する方法について簡単なウォークスルー/チュートリアルを提案できますか?さらに、Java用のFFTの適切な実装を誰かが知っている場合は、その提案をいただければ幸いです。
9 fft  audio  java 

1
2つのオーディオトラックの同期
2つのオーディオトラックを同期するアルゴリズムを実装したいと思います。 2つのトラックはよく似ています。同じ部屋にある2つのマイクからの音(必ずしも音楽ではない)の2つの録音であると想像できます。これは、2つの異なる(線形)チャネルを通過する1つの信号として、異なる加法性ノイズとともに表示されることを意味します。 最初のアイデアは相互相関のピークを探すことかもしれませんが、このトピックに関する文献を見つけることは特に興味深いですが、見つけることができるすべての論文は2つの音楽トラックを同期させることです(クロマベースのオーディオ機能を使用) )、またはスコアとオーディオを同期します。彼らはまた、タイムワーピングがあるかもしれないと仮定しますが、それは私の場合には不必要な仮定です。

2
Sound FSK / PSK / DSSSを介したPC間のデータ通信
楽しさと仕事のために、PCのスピーカーを使用して音声またはデータをエンコードして送信できるJavaベースのアプリケーションを実装する必要があります。受信側には、デコーダーソフトウェア付きのマイクがあります。 私は実装にFSK(synまたはasyncまたは提案)を使用することを考えていました: テキスト(データ)--- modulate ---> 10khz-20khzオーディオ搬送波--->無線伝送--->マイク->復調--->テキストまたはデータを表示します。 私の主な考慮事項は次のとおりです。 帯域幅が200bps以下の場合 特定のレベルまでのノイズに強い できれば16khz-20khzの搬送波で44.1khzのサンプリング(この領域ではノイズが少なく、高齢者やマイクにはあまり聞こえません。スピーカーは安価で、ラップトップですぐに利用できます) コーディングロジックが複雑すぎないこと。 最小限のコーディング作業でどの変調が最も効果的に機能しますか?Javaを使用してFSK / BFSK / PSKまたはDSSSを実現するためのライブラリ/サンプルに関する推奨事項はありますか?

1
類似性の評価のための音声比較アルゴリズム
私は2つの音声サンプルを比較し、類似点でそれらを評価しようとしています。誰かがフレーズを繰り返して、それらの2つのオーディオファイルを比較しようとしていると考えてください。 私はMFCC(http://en.wikipedia.org/wiki/Mel-frequency_cepstrum)アルゴリズムを実装することから始めました。両方のオーディオサンプルのMFCCを計算します。これにより、14程度のMFCC係数を持つ約500フレームのオーディオ(各10ミリ秒、前のものと30%オーバーラップ)が得られます。つまり、各オーディオ信号に対して500x14のマトリックスです。 次に、単純に行列を差分する単純なアプローチを実行します。これは非常に有望な結果を与えません。完全に異なるオーディオサンプル(異なるフレーズが話されている)を比較する時間の半分は、同じフレーズを繰り返そうとするオーディオを比較するよりも差が少なくなります。これは明らかに逆であり、良いスコアリングアルゴリズムを私に与えることはできません。 これをどのように改善できますか?MFCCは音声処理の本当に重要な部分だと思いましたが、明らかにそれをさらに活用する必要があります。
8 audio  mfcc 

5
ピアノのピッチ検出
私はピアノのチューニングプログラムに取り組んでおり、その一部にはリアルタイムのピッチ検出が必要です。これは私がこれまでに行ったスキームで、ある程度は機能しますが、おそらくいくつかの改良を使用できます。 モノラル、44.1kHz、16ビットPCMオーディオを2 ^ 14サンプルのチャンクでキャプチャしています。最後の4つのサンプルを長さ2 ^ 16のバッファーに結合し、ハンウィンドウをバッファーに適用して、FFTを実行します。次に、FFTの結果を2つの解像度でバケット化します。最初に、200バケットにバケット化してから、この粒度でHPSピッチ検出アルゴリズムを実行します。ここで正確な周波数を取得する必要はありません。近づきたいだけです。次に、12000バケットにバケット化すると、10Hzから10kHzまで1セントの解像度になります。200ビンHPSアルゴリズムからおおよその周波数がわかったら、12000ビンケースのその範囲でピークを検索して、より正確な周波数を取得します。 これは、キーボードの中央にあるノートでは問題なく動作するようです。低音で発生するのは、通常、実際の音の2番目または3番目の部分である約1.5秒の音の誤認と、その後の正しい音の誤認です。 何が起こっているのかを確認するために作成したすべてのスペクトルプロットでは、予想されるピークよりも広い幅があります。この幅は、200ビンから12000ビンのケースで視覚的にある程度一貫しています。200ビンの場合、ピークが狭くなると予想していました。 ですから、信号処理は私にとっては初めてなので、私が質問することは考えられない問題があるかもしれませんが、特定の質問に関しては、サンプルサイズはこのタスクに十分ですか?ハーンはウィンドウの正しい選択ですか?FFTの前にデータを平滑化する必要がありますか?ビンの数に対してHPSはどの程度敏感ですか?多くのビンを使用した場合、非調和性により、部分音がHPSアルゴリズムの2、3、4などで除算する単純なアプローチと基本波をオーバーラップしない可能性があると考えていました。
8 fft  audio  pitch 

1
オーディオの正規化
pcm形式のレコーディングがあり、簡単な分析を行いたい。 正規化とは何かについていくつか質問があります。これまでのところ、範囲[1、1]の間のすべての振幅を取得することは理解しています。 これを行う明白な方法は次のとおりです。 max_amplitude = max(array_of_amplitudes) for amplitude in array_of_amplitudes: amplitude = amplitude / max_amplitude RMSの正規化について読みました。誰かがそれがどのように行われるか説明できますか? さらに、正規化の利点は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.