我正在编写一个记录wav文件的应用程序.Wav文件中的间隙(静音)被阈值删除。因为这经常导致最后一个音符和下一个音符之间的曲折。如果说话者长时间停顿,我怎样才能在两者之间添加一个恒定的静音。
bufferSize = AudioRecord.getMinBufferSize(frequency,
channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord( MediaRecorder.AudioSource.MIC, frequency,
channelConfiguration, audioEncoding, bufferSize);
short[] buffer = new short[bufferSize];
audioRecord.startRecording();
while (started) {
int bufferReadResult = audioRecord.read(buffer, 0,bufferSize);
if(AudioRecord.ERROR_INVALID_OPERATION != bufferReadResult){
//check signal
//put a threshold
int foundPeak=searchThreshold(buffer,threshold);
if (foundPeak>-1){ //found signal
//record signal
Toast.makeText(getApplicationContext(), Integer.toString(count), Toast.LENGTH_SHORT).show();
byte[] byteBuffer =ShortToByte(buffer,bufferReadResult);
try {
os.write(byteBuffer);
} catch (IOException e) {
e.printStackTrace();
}
}else{//count the time
//don't save signal
}