Android 通过麦克风将PCM数据与先前输入的数据相匹配,或用作文字识别
我正在开发一个从pcm数据识别语音的应用程序。目前我正在打印pcm缓冲区Android 通过麦克风将PCM数据与先前输入的数据相匹配,或用作文字识别,android,speech-recognition,Android,Speech Recognition,我正在开发一个从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_16BI
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]));
}
}
int N=AudioRecord.getMinBufferSize(8000,单声道中的AudioFormat.CHANNEL\u,AudioFormat.ENCODING\u PCM\u 16位);
记录器=新的音频记录(AudioSource.MIC,8000,AudioFormat.CHANNEL,单声道,AudioFormat.ENCODING,PCM,16位,N*10);
曲目=新的音频曲目(AudioManager.STREAM_MUSIC,8000,
AudioFormat.CHANNEL\u OUT\u MONO、AudioFormat.ENCODING\u PCM\u 16位、N*10、AudioTrack.MODE\u STREAM);
记录器。开始记录();
/*
*循环,直到线程外的某个对象停止它。
*从录音机读取数据并将其写入音频曲目f
*/
当(!停止)
{
//Log.i(“映射”,“将新数据写入缓冲区”);
short[]buffer=buffers[ix++%buffers.length];
N=记录器读取(缓冲区,0,缓冲区长度);
for(int i=0;i
我希望1)将pcm数据与以前的pcm数据匹配,或2)将其识别为字。例如如果我在麦克风内说“hello”,它会将pcm数据转换为hello一词,我可以根据该词进行处理,或者如果我在两个单独的缓冲区中记录“hello”和“world”,然后再次说“hello”,它可以确定我重复了“hello”而不是world。请帮忙 Android内置了语音识别功能。但是,我认为它不支持记录的PCM数据。我认为,要使用它,您必须直接进行语音输入。请确保开始 如果您必须记录数据,您可以使用其他服务进行语音识别。有关部分选项的介绍,请参阅 如果你只是在玩游戏(而不是开发生产应用程序),你也可以尝试使用Chrome使用的谷歌语音识别服务。您必须将PCM转换为FLAC。看 如果您想在不进行识别的情况下比较PCM缓冲区,信号处理是一个深入而有趣的领域。对不起,我太生疏了,不能在那个领域提供任何建议