2012-10-02 10 views
5

Quando uso Androids AudioRecord per registrare dal microfono, ottengo questo fastidioso artefattoAndroid AudioRecord artefatto

enter image description here

C'è un modo per evitare o rimuovere questo? Che cos'è? O ottengo quello perché ho fatto qualcosa di sbagliato nella configurazione (ma tutto il resto funziona bene).

Ecco la mia configurazione AudioRecord:

sampleRateInHz = 44100; 
    channelConfigRec = AudioFormat.CHANNEL_IN_MONO; 
    audioFormat = AudioFormat.ENCODING_PCM_16BIT; 
    bufferSizeInBytesRec = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfigRec, audioFormat); 
    audioSource = AudioSource.MIC; 

Sono abbastanza sicuro che il mio codice è giusto, perché posso registrare tutto bene, ma c'è questo scatto all'inizio.

+0

puoi pubblicare il tuo codice –

+0

abbiamo bisogno di vedere il tuo codice ??? ma puoi leggere questo forse aiutarti [prev. risposta] [1] [1]: http://stackoverflow.com/questions/4707994/android-audiorecord-questions – Omarj

+0

Questa domanda appartiene su SO dal momento che è una domanda sviluppatore. Le domande di programmazione sono fuori tema su Android.SE: http://android.stackexchange.com/faq#what-out-other-android-related-questions –

risposta

6

Provare a impostare l'audioSource su AudioSource.VOICE_RECOGNITION. Su alcuni dispositivi, in particolare sui dispositivi HTC, ho scoperto che c'è meno filtraggio in corso con quella fonte. E con ICS e dopo questo è il modo ufficiale che le cose dovrebbero essere. Nel documento di compatibilità del dispositivo Android 4.0 questo è formalizzato:

Quando un'applicazione ha iniziato a registrare un flusso audio usando android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION sorgente audio:

  • L'elaborazione della riduzione del rumore, se presente, DEVE essere disabilitata.
  • Il controllo automatico del guadagno, se presente, DEVE essere disabilitato.
+0

Per AudioRecord c'è non è una fonte audio VOICE_RECOGNITION, ma ora ho un'idea di cosa cercare. – Puckl

+0

VOICE_RECOGNITION +100, un'opzione mi consente di risparmiare una settimana. – Imskull

2

Penso che l'artefatto mostrato sia l'effetto collaterale di un filtro digitale che viene utilizzato per elaborare l'audio registrato. Ogni filtro digitale ha un certo ritardo. Ad esempio, se il filtro ha coefficienti N, il suo ritardo è N/2. In sostanza, ciò significa che il filtro inizierà a funzionare normalmente dopo che i primi campioni N/2 di segnali audio sono passati attraverso di esso. Questa dovrebbe essere la ragione per il manufatto che stai avendo. Spero che questo ti aiuti.