Sto cercando di imparare lo sviluppo di Android e mi chiedevo come posso acquisire l'audio da un microfono e poi cambiare la voce nell'audio in modo che suoni più spesso o più nitida, ecc. In breve: Come faccio a registrare e modificare i parametri di un suono? (In Java, ovviamente)Come registrare audio su Android e modificare il tono?
5
A
risposta
5
Attualmente sto lavorando su un android app that involves audio. La registrazione dell'audio è la parte più semplice e puoi principalmente copiare il mio codice per quello. Scrivere un filtro audio è un compito molto più difficile, e richiede la conoscenza di elaborazione del segnale digitale e la Fast Fourier Transform (FFT)
Si potrebbe iniziare con la lettura su audio processing in java here.
Nel frattempo, ecco il codice per registrare l'audio su 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
Problemi correlati
- 1. Come registrare audio su Android Wear
- 2. Riproduci tono stereo in Android
- 3. Come accelerare la riproduzione di musica in tempo reale su Android senza modificare il tono?
- 4. Emulatore Android sembra registrare audio a 96khz
- 5. come registrare file audio con una migliore qualità in Android?
- 6. Come registrare audio utilizzando l'auricolare bluetooth
- 7. Come registrare il suono prodotto dall'uscita dell'unità mixer (audio core iOS e grafico audio)
- 8. Come posso registrare audio attualmente in riproduzione su iPhone?
- 9. Registrare video e audio e caricare sul server
- 10. Genera un file audio con un tono 15Khz
- 11. Elaborazione audio in tempo reale su Android
- 12. Registrazione audio da non file su Android
- 13. Come registrare il test nell'appum android?
- 14. Ingresso audio su emulatore Android
- 15. Come registrare l'audio utilizzando Android 1.5?
- 16. Record tablet e audio
- 17. Come leggere e modificare i dati del file audio amr?
- 18. Come posso intercettare il flusso audio su un dispositivo Android?
- 19. Qual è l'approccio migliore per riprodurre mp3/wav e modificare il tempo (velocità audio) Android?
- 20. Come modificare il suono della notifica tramite codice in Android?
- 21. È possibile registrare audio con HTML5?
- 22. Streaming file audio su Android non funziona su Android 2.3
- 23. Come registrare video in uscita MPEG-2 TS e formato di codifica audio ACC
- 24. Come utilizzare un'unità audio su iPhone
- 25. Come registrare la voce in Android?
- 26. Android: Come modificare il tasso di riproduzione della musica usando OpenSL ES
- 27. distorsione audio Android su forma d'onda quadrata
- 28. HTML5 <audio> tag su Android
- 29. Riproduci il tono variabile con Java?
- 30. Riproduci audio e video allo stesso tempo su Android