RPi3에서 안드로이드에 대한 SDK의 미리보기 2에서 작업 중입니다. 시도한 오디오 레코더는 물론 미디어 레코더에서도 여전히 오디오를 캡처 할 수 없습니다. 나는 연설을 텍스트로 변환하려고 노력하고있다. 일반 SpeechRecognition은 지원되지 않습니다. USB 마이크를 RPi3에 직접 연결하고 헤드폰 MIC를 USB 사운드 카드를 통해 RPi3에 연결했습니다.안드로이드에 음성을 녹음하는 방법
MediaRecorder 코드 :
private void startRecording() {
Log.d(TAG, "startRecording....");
mRecorder = new MediaRecorder();
Log.d(TAG, "startRecording: Audio Source"+MediaRecorder.getAudioSourceMax());
mRecorder.setAudioSource(MediaRecorder.AudioSource.UNPROCESSED);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
try {
mRecorder.prepare();
} catch (IOException e) {
Log.e(TAG, "prepare() failed");
}
mRecorder.start();
}
private void stopRecording() {
// stops the recording activity
if (mRecorder != null) {
mRecorder.stop();
mRecorder.release();
mRecorder = null;
}
}
매니페스트 권한 :
<uses-permission android:name="android.permission.RECORD_AUDIO" />
오류 : 당신이 방법을 만들어야합니다 그래서 각 장치가 ,, 다른 초기화 설정이있을 수 있습니다
03-09 17:17:38.662 3970 3970 D MainActivity: onCreate
03-09 17:17:38.668 3970 3970 D MainActivity: startRecording....
03-09 17:17:38.672 3970 3970 D MainActivity: startRecording: Audio Source9
03-09 17:17:38.678 161 161 E AudioSystem: AudioSystem::getInputBufferSize failed sampleRate 8000 format 0x1 channelMask 10
03-09 17:17:38.678 161 161 E AudioRecord: AudioSystem could not query the input buffer size for sampleRate 8000, format 0x1, channelMask 0x10; status -22
03-09 17:17:38.678 161 161 E StagefrightRecorder: audio source is not initialized
03-09 17:17:38.678 3970 3970 E MediaRecorder: start failed: -2147483648
03-09 17:17:38.680 3970 3970 D AndroidRuntime: Shutting down VM
03-09 17:17:38.683 3970 3970 E AndroidRuntime: FATAL EXCEPTION: main
03-09 17:17:38.683 3970 3970 E AndroidRuntime: Process: com.example.androidthings.myproject, PID: 3970
03-09 17:17:38.683 3970 3970 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.androidthings.myproject/com.example.androidthings.myproject.MainActivity}: java.lang.RuntimeException: start failed.
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread.-wrap12(ActivityThread.java)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6077)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: Caused by: java.lang.RuntimeException: start failed.
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.media.MediaRecorder.start(Native Method)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at com.example.androidthings.myproject.MainActivity.startRecording(MainActivity.java:181)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at com.example.androidthings.myproject.MainActivity.onCreate(MainActivity.java:63)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6662)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
03-09 17:17:38.683 3970 3970 E AndroidRuntime: ... 9 more
이렇게하면 NULL이되는 모든 조합에 대해 잘못된 버퍼 크기가됩니다. AudioRecorder –