Я работаю над приложением для распознавания речи по данным PCM. В настоящее время я печатаю буфер PCM.
int N = AudioRecord.getMinBufferSize(8000,AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
recorder = new AudioRecord(AudioSource.MIC, 8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, N*10);
track = new AudioTrack(AudioManager.STREAM_MUSIC, 8000,
AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, N*10, AudioTrack.MODE_STREAM);
recorder.startRecording();
/*
* Loops until something outside of this thread stops it.
* Reads the data from the recorder and writes it to the audio track f
*/
while(!stopped)
{
//Log.i("Map", "Writing new data to buffer");
short[] buffer = buffers[ix++ % buffers.length];
N = recorder.read(buffer,0,buffer.length);
for(int i = 0; i < buffer.length; i ++) {
System.out.println(String.valueOf(buffer[i]));
}
}
Я бы хотел 1) сопоставить данные pcm с предыдущими данными pcm или 2) распознать их как слово. Например. Если я говорю «привет» внутри микрофона, он превращает данные PCM в слово «привет», и я могу обрабатывать в соответствии со словом или, если я записываю «привет» и «мир» в двух отдельных буферах, тогда говорю «привет» опять же, это может определить, что я повторил «привет», а не мир. Помогите, пожалуйста.