2

これが私のコードです

    private static int Fs = 44100; 
    private byte recorderAudiobuffer[] = new byte [1024];
    AudioRecord recorder = new  AudioRecord(AudioSource.MIC, Fs, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 4096);
    //start recorder
    recorder.startRecording();

値は、recorderAudiobuffer[] の bin[n] と bin[n+1] によって識別されます。

これらの値は何の単位ですか?

4

2 に答える 2

0

サンプルレートが 44100 Hz であるため、要素間の差はrecordAudiobuffer[]1/44100 秒になります。

それらが保持するバイトの値に関しては、任意のサウンド レベルを意味する可能性があります。感度が低い場合、録音している音が大きい場合でも、バイトの最大値は 12 になる可能性があります。一方、感度を上げると、255 はささやき声になる可能性があり、その後はレイドされます。

于 2013-05-17T02:43:46.977 に答える
0

これはオーディオに関する質問です:)、しかし、ここでは、できるだけ単純にするために、サウンドデータには2つの次元があり、1つは時間ベースで、もう1つはサンプルベースであるため、44100 *(サンプルレート)で分離されたサウンドがありますたとえば、振幅あたり 16 ビット) 1 秒または 88200 に必要な 705600 ビットがあり、この場合、同じサンプリングがある場合、11.6 ミリ秒のバッファーが必要になります。

そしてもちろん、振幅値について質問しています。

これが役に立ち、あなたの仕事を楽しんでくれることを願っています。

于 2013-05-17T02:45:34.483 に答える