Konfigurieren Sie Vorverarbeitungseffekte

Die Android 10-Version enthält die folgenden Anforderungen für die Aufnahme mit VOICE_COMMUNICATION .

  • Implementierungen sollten bei der Erfassung mit VOICE_COMMUNICATION einen akustischen Echounterdrücker (AEC) auf dem Erfassungspfad bereitstellen.
  • Wenn ein AEC bereitgestellt wird, muss dieser über den AcousticEchoCanceler der SDK-API erkennbar und steuerbar sein.

Die Android-Plattform stellt Audioeffekte auf unterstützten Geräten im audiofx Paket bereit, auf das Entwickler zugreifen können. Das Nexus 10 unterstützt beispielsweise die folgenden Vorverarbeitungseffekte:

Koppeln Sie es mit AudioSource-Instanzen

Vorverarbeitungseffekte werden mit dem Anwendungsfallmodus gepaart, in dem die Vorverarbeitung angefordert wird. Bei der Android-App-Entwicklung wird ein Anwendungsfall als AudioSource Instanz bezeichnet. und App-Entwickler fordern die Verwendung der AudioSource Abstraktion anstelle des eigentlichen Audio-Hardwaregeräts. Der Android Audio Policy Manager ordnet eine AudioSource Instanz gemäß produktspezifischen Regeln einer bestimmten Erfassungspfadkonfiguration (einschließlich Gerät, Verstärkung und Vorverarbeitung) zu. Die folgenden Quellen stehen Entwicklern zur Verfügung:

  • android.media.MediaRecorder.AudioSource.CAMCORDER
  • android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
  • android.media.MediaRecorder.AudioSource.VOICE_CALL
  • android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
  • android.media.MediaRecorder.AudioSource.VOICE_UPLINK
  • android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
  • android.media.MediaRecorder.AudioSource.MIC
  • android.media.MediaRecorder.AudioSource.DEFAULT

Die standardmäßigen Vorverarbeitungseffekte, die für jede AudioSource Instanz angewendet werden, sind in der Datei /vendor/etc/audio_effects.xml angegeben. Um Ihre eigenen Standardeffekte für jede AudioSource Instanz anzugeben, erstellen Sie eine Datei /vendor/etc/audio_effects.xml und geben Sie die zu aktivierenden Vorverarbeitungseffekte an. Ein Beispiel finden Sie in der Implementierung für das Nexus 10 in device/samsung/manta/audio_effects.xml . AudioEffect Instanzen erwerben und geben eine Sitzung frei, wenn sie erstellt und zerstört werden, sodass die Effekte (z. B. der Loudness Enhancer) während der gesamten Sitzung bestehen bleiben.

Das folgende Beispiel aktiviert die Vorverarbeitung für die Instanzen VoIP AudioSource und Camcorder AudioSource . Durch die Deklaration der AudioSource Konfiguration auf diese Weise fordert das Framework automatisch die Verwendung dieser Effekte von der HAL an.

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

Quellenabstimmung

Für AudioSource Abstimmung gelten keine expliziten Anforderungen an die Audioverstärkung oder Audioverarbeitung, mit Ausnahme der Spracherkennung ( VOICE_RECOGNITION ). Zu den Anforderungen für die Spracherkennung gehören:

  • Flacher Frequenzgang (+/- 3 dB) von 100 Hz bis 4 kHz
  • Close-Talk-Konfiguration: 90 dB SPL liest RMS von 2500 (16-Bit-Samples)
  • Der Pegel wird linear von -18 dB bis +12 dB relativ zu 90 dB SPL verfolgt
  • THD < 1 % (90 dB SPL im Bereich von 100 bis 4000 Hz)
  • Anforderungen an den Nahultraschall (für Tests siehe Nahultraschalltests ):
    • Unterstützung für SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND gemäß Definition in Abschnitt 7.8.3 des CDD.
    • Unterstützung für eine oder beide Abtastraten von 44.100 oder 48.000 ohne Bandpass- oder Antialiasing-Filter.
  • Effekte/Vorverarbeitung standardmäßig deaktiviert

Beispiele für die Abstimmung verschiedener Effekte für verschiedene Quellen sind:

  • Geräuschunterdrücker
    • Abgestimmt auf Windgeräuschunterdrückung für CAMCORDER
    • Abgestimmt auf stationäre Geräuschunterdrückung für VOICE_COMMUNICATION
  • Automatische gewinn Kontrolle
    • Auf Nahgespräche für VOICE_COMMUNICATION und das Haupttelefonmikrofon abgestimmt
    • Abgestimmt auf Ferngespräche für CAMCORDER

Ressourcen

Weitere Informationen finden Sie in den folgenden Ressourcen: