私は Java を初めて使用し、構文と構造をマスターしましたが、マイクから処理されたデジタル オーディオ サンプルを取得するのに苦労しています。
私が達成しようとしているのは非常に単純ですが、長期的には非常に単純なスペクトログラムを作成しようとしていますが、オーディオ操作プロセスを理解/習得するために、ゼロから始めようとしています。
これが私の問題です
マイクが 1 回のビープ音または何らかの音を検出したら、そのバイナリ データをキャプチャし、そのままの形式で表示したいと考えています。
JAVA にそれを求めるのは本当に多すぎるのでしょうか?
アナログ/デジタル信号、FFT、matlab について読んだことがあり、次のような多くのリンクを検索しました。
Web ページからのストリーミング ブロードキャストのオーディオを録音する方法はありますか?
オラクルからの有名な紹介
http://docs.oracle.com/javase/tutorial/sound/capturing.html
これは実際には良いチュートリアルですhttp://www.developer.com/java/other/article.php/3380031/Spectrum-Analysis-using-Java-Sampling-Frequency-Folding-Frequency-and-the-FFT-Algorithm .htm
しかし、それらはすべて、私の答えに対する解決策を提供するには不十分です。
コードを要求しているわけではありませんが、すべての行を読んで関連するメカニズムを理解するだけでも素晴らしいでしょうが、簡単なヒントも同様に素晴らしいでしょう.
wav
そして、これはバイトをキャプチャするための簡単なコードですが、既存のファイルからのみです
import java.io.FileInputStream;
import java.io.IOException;
public class Boo{
public static void main(String[] arguments){
try {
FileInputStream file = new FileInputStream("beep.wav");
boolean eof = false;
int count = 0;
while(!eof){
int input = file.read();
System.out.print(input + "");
if(input == -1)
eof = true;
else
count++;
}
file.close();
System.out.println("\nBytes read: " + count);
}catch (IOException e){
System.out.println("Error - " + e.toString());
}
}
}
バウンティ後
-より分かりやすくするために-
マイクから読み取るだけの簡単なプログラムにしようとしています。キャプチャしたサウンドのバイナリ データをリアルタイムで表示します。
スペクトログラムのようなものだと考えてください。音がキャプチャされると、さまざまな信号レベルに応じてグラフが上下しますが、この場合、バイナリ データをオーディオ グラフに変換する必要はなく、生の音を表示するだけです。データそのもの。ファイルを読み書きする必要はありません。マイクからキャプチャして、マイクから読み取ったものを表示するだけです。
上記の方法が難しい場合は、ウェブ全体を検索しても役立つものが見つからなかったので、ガイド/指示を教えてください..ありがとう