私はAndroid開発を学びたいと思っています。マイクからオーディオをキャプチャして、オーディオの音声を変更して、より太くてシャープに聞こえるようにする方法が不思議でした。 要約:パラメータの記録と変更音の? (Javaではもちろん)Androidでオーディオを録音してピッチを変更するにはどうすればよいですか?
5
A
答えて
5
実際にはandroid app that involves audioで作業しています。オーディオを録音するのは簡単な部分です。ほとんどの場合、自分のコードをコピーすることができます。オーディオフィルタを書くことは非常に難しい作業であり、およびデジタル信号処理の知識を必要とFast Fourier Transform (FFT)
あなたはおよそaudio processing in java here.
を読むことによって始めることができる一方で、ここでは、Android上で音声を録音するコードです:
public String record() {
// please note: the emulator only supports 8 khz sampling.
// so in test mode, you need to change this to
//int frequency = 8000;
int frequency = 11025;
int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
File file = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/reverseme.pcm");
// Delete any previous recording.
if (file.exists())
file.delete();
// Create the new file.
try {
file.createNewFile();
} catch (IOException e) {
throw new IllegalStateException("Failed to create "
+ file.toString());
}
try {
// Create a DataOuputStream to write the audio data into the saved
// file.
OutputStream os = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(os);
DataOutputStream dos = new DataOutputStream(bos);
// Create a new AudioRecord object to record the audio.
int bufferSize = 2 * AudioRecord.getMinBufferSize(frequency,
channelConfiguration, audioEncoding);
AudioRecord audioRecord = new AudioRecord(
MediaRecorder.AudioSource.MIC, frequency,
channelConfiguration, audioEncoding, bufferSize);
short[] buffer = new short[bufferSize];
audioRecord.startRecording();
Log.e(tag, "Recording started");
long start = SystemClock.elapsedRealtime();
long end = start + 15000;
while (SystemClock.elapsedRealtime() < end) {
int bufferReadResult = audioRecord.read(buffer, 0, bufferSize);
for (int i = 0; i < bufferReadResult; i++)
if (ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN)) {
dos.writeShort(EndianUtils.swapShort(buffer[i]));
} else {
dos.writeShort(buffer[i]);
}
}
Log.e(tag, "Recording stopped");
audioRecord.stop();
bos.flush();
dos.close();
isRecording = false;
return file.getAbsolutePath();
} catch (Exception e) {
Log.e(tag, "Recording Failed:" + e.getMessage());
throw new RuntimeException("Failed to create " + e.getMessage());
}
}
0
関連する問題
- 1. Android。大量のオーディオ録音はどうすればいいですか?
- 2. ノードでオーディオWAVファイルのピッチを変更するにはどうすればよいですか?
- 3. Androidのオーディオ:ピッチを変更する
- 4. QT C++でオーディオを録音して保存するにはどうすればよいですか?
- 5. Androidスタジオでプロセス録音オーディオをスレッドするにはどうすればいいですか?
- 6. HTML5で録音したwebmオーディオをプログラム的に再生するにはどうすればよいですか?
- 7. Androidのオーディオ録音の波形を描くにはどうすればいいですか?
- 8. スピーカーからオーディオを録音するにはどうすればよいですか?
- 9. iPad/iPhoneのBluetoothヘッドセットからオーディオを録音するにはどうすればよいですか?
- 10. ウェブサイトのモバイルデバイスにオーディオを録音するにはどうすればよいですか?
- 11. 音量の変更に関する通知を登録するにはどうすればよいですか?
- 12. アスタリスクでコールを録音するにはどうすればよいですか?
- 13. androidにオーディオを録音する
- 14. SpeakHereを変更してデバイスで再生されたオーディオを録音する
- 15. VB6でオーディオを録音するには?
- 16. バックグラウンドミュージックでオーディオを録音するには?
- 17. フラッシュ録音されたオーディオをクライアントのbytearrayで録音する
- 18. Androidでデフォルトのシャッター音を変更するにはどうすればよいですか?
- 19. Androidで内蔵オーディオにアクセス/録音できるのですか?
- 20. オーディオをAndroid 6.0+で録音している間は、ホワタップがアクティブです。
- 21. Androidでタスクアフィニティを変更するにはどうすればよいですか?
- 22. Androidでタブを変更するにはどうすればよいですか?
- 23. Androidエミュレータが96khzでオーディオを録音するように見える
- 24. マイクアレイのすべてのマイクのオーディオをAndroidの別のバッファに同時に録音するにはどうすればよいですか?
- 25. オーディオをテキストに変換するにはどうすればよいですか?
- 26. Chrome拡張機能で音声を録音するにはどうすればよいですか?
- 27. 録音オーディオandroidでAudioRecordを使用
- 28. サウンドを録音してWebアプリケーションからサーバーに送信するにはどうすればよいですか?
- 29. ボタンを押して音の周波数(Fs)を変更するにはどうすればよいですか?
- 30. iOSデバイスのBluetoothヘッドセットから音声を録音するにはどうすればよいですか?