2013-04-25 6 views
2

Я хочу перекодировать голос, когда определенный уровень звука принимает и останавливает звукозапись, не получает звука.Автоматическая запись звука и остановка, когда пользователь перестает говорить с использованием аудио-рекодера

Первоначально я использую медиамагнитофон для проверки максимальной амплитуды, когда я его получаю, тогда я начинаю запись через аудиомагнитофон, но я не могу остановить его, потому что у аудиомагнитофона нет никакого способа получить максимальную амплитуду.

+0

Вы имеете в виду Talking Tom Application? – Raynold

+0

Да похоже на говорящий tom App. – Singhak

ответ

0

Вы должны попробовать некоторые вещи, как это:

readAudio = audioRecorder.read(data16bit, 0, buffer); 
double fN = (double)readAudio; 

double accum = 0; 
for (int i = 0; i < readAudio; i ++) 
{ 
    accum += Math.abs((double)data16bit[i]); 
} 

double soundLevel = accum/fN; 

Затем проверьте значение уровня шума, чтобы увидеть, когда приложение должно остановить запись.

+0

Проблема заключается в том, что вы застряли в постоянной руке (что-то вроде 'soundLevel <5'). Есть ли способ сделать эту работу в шумной среде? –