Сопоставьте данные PCM с ранее введенными данными через микрофон или используйте в качестве распознавания слов - PullRequest
1 голос
/ 06 марта 2012

Я работаю над приложением для распознавания речи по данным 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 в слово «привет», и я могу обрабатывать в соответствии со словом или, если я записываю «привет» и «мир» в двух отдельных буферах, тогда говорю «привет» опять же, это может определить, что я повторил «привет», а не мир. Помогите, пожалуйста.

1 Ответ

0 голосов
/ 07 марта 2012

Android имеет встроенную функцию распознавания речи.Однако я не верю, что он поддерживает записанные данные PCM.Чтобы использовать его, я полагаю, вы должны принять голосовой ввод напрямую.См. http://android -developers.blogspot.com / 2010/03 / speech-input-api-for-android.html , чтобы начать.

Если вы должны записать данные, выможет использовать другие сервисы для распознавания речи.Для ознакомления с некоторыми из вариантов см. https://stackoverflow.com/a/6351055/90236.

Если вы просто играете (а не создаете производственное приложение), вы также можете попробовать использовать службы Google для распознавания речи, которые использует Chrome.Вам придется конвертировать из PCM в FLAC.См. Служба распознавания речи Google Voice Search

Если вы хотите сравнивать буферы PCM без распознавания, обработка сигналов является глубокой и интересной областью.Извините, я слишком заржавел, чтобы давать какие-либо советы в этой области.

...