5

こんにちは、Android音源クラスを使用すると、あるデバイスでトーンを作成し、別のデバイスで同じトーンをリッスンできるかどうか疑問に思いました。これが可能であれば、他にもいくつか質問があります。

バックラウンドノイズを考慮して、この特定のトーンだけを聞くことは可能ですか?

このプロセスはリソースを大量に消費しますか?

人間の耳には聞こえない、または耳に近い音を使用できますか?

最後に、送信デバイスから数フィートでしか聞こえないトーンを使用できますか?

いつもありがとうございました:)

編集>オーディオ処理タグsabastianを追加していただきありがとうございます。はるかに良い説明。

4

2 に答える 2

4

はい、CPUを集中的に使用します。それへの道は非常に簡単です:あなたは受信したデータをFFT(高速フーリエ変換)に入れる永久的なレコーダーを必要とします。FFTは基本的に1つのことを行います。それは、オーディオを周波数/パワースケールに分割することです。この「バックグラウンドノイズがクリーンアップされた」結果を使用すると、「1000Hzが少なくとも2秒間再生されているトーンがあったか」などを確認し、それに応じて動作することができます。ここには妥当な速度のFFT実装があります:http : //www.badlogicgames.com/wordpress/?p = 449 FFTは、デュアルトーンダイヤリング(DTMF)の検出にも使用できます(実際にはISを使用)-2つの周波数を同時に使用できます1つを使用するよりもはるかに優れています(エラー率が大幅に低下し、トーンの送信/検出の期間を短くすることができるため)。

(a)スピーカーはそのような音を生成できないため、「聞こえない」ことはできません。(b)サンプリングレートが制限されているため、このような高周波数の生成と録音の両方が制限されます。

「数フィート」は自然に課せられます(あまり大きなスピーカーではなく、あまり良いマイクではありません)。

于 2011-01-30T13:22:32.827 に答える
2

この他の質問を見てください:「Android:マイク入力を録音する必要があります」。タスクに合わせて変更できると思います。サウンドバイトを使用すると、フィルタリングまたはFFTを使用できます。

それが役に立てば幸い

于 2012-06-24T14:15:50.670 に答える