Vorverarbeitungseffekte konfigurieren

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

  • Implementierungen sollten einen AEC (Acoustic Echo Canceler) auf dem Erfassungspfad bereitstellen, wenn mit VOICE_COMMUNICATION erfasst wird.
  • Wenn Sie eine AEC bereitstellen, muss sie über die AcousticEchoCanceler der SDK-API auffindbar und steuerbar sein.

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

Mit AudioSource-Instanzen koppeln

Vorverarbeitungseffekte sind mit dem Anwendungsfallmodus verknüpft, in dem die Vorverarbeitung angefordert wird. In der Android-App-Entwicklung wird ein Anwendungsfall als AudioSource-Instanz bezeichnet. App-Entwickler fordern die Verwendung der AudioSource-Abstraktion anstelle des tatsächlichen Audio-Hardwaregeräts an. Der Android Audio Policy Manager ordnet eine AudioSource-Instanz gemäß produktspezifischen Regeln einer bestimmten Konfiguration des Aufnahmepfads zu (einschließlich Gerät, Verstärkung und Vorverarbeitung). Die folgenden Quellen sind für Entwickler verfügbar:

  • 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. Wenn Sie eigene Standardeffekte für jede AudioSource-Instanz festlegen möchten, erstellen Sie eine /vendor/etc/audio_effects.xml-Datei und geben Sie die Vorverarbeitungseffekte an, die aktiviert werden sollen. Ein Beispiel finden Sie in der Implementierung für das Nexus 10 in device/samsung/manta/audio_effects.xml. AudioEffect-Instanzen rufen eine Sitzung ab und geben sie frei, wenn sie erstellt und zerstört werden. So können Effekte wie der Loudness Enhancer während der gesamten Sitzung beibehalten werden.

Im folgenden Beispiel wird die Vorverarbeitung für die VoIP-Instanz AudioSource und die Camcorder-Instanz AudioSource aktiviert. Wenn Sie die AudioSource-Konfiguration auf diese Weise deklarieren, fordert das Framework automatisch die Verwendung dieser Effekte vom HAL an.

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

Quellenoptimierung

Für die AudioSource-Abstimmung gibt es keine expliziten Anforderungen an die Audioverstärkung oder die Audioverarbeitung, mit Ausnahme der Spracherkennung (VOICE_RECOGNITION). Die Anforderungen für die Spracherkennung sind:

  • Linearer Frequenzgang (+/- 3 dB) von 100 Hz bis 4 kHz
  • Konfiguration für Nahfeldmikrofon: 90 dB SPL entspricht einem RMS-Wert von 2.500 (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 4.000 Hz)
  • Anforderungen an den Bereich um den Ultraschall (für Tests siehe Tests für den Bereich um den Ultraschall):
    • Unterstützung für SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND gemäß Abschnitt 7.8.3 des CDD.
    • Unterstützung für eine oder beide Abtastraten von 44.100 oder 48.000 Hz ohne Bandpass- oder Antialiasing-Filter.
  • Effekte/Vorverarbeitung standardmäßig deaktiviert

Beispiele für das Anpassen verschiedener Effekte für unterschiedliche Quellen:

  • Geräuschunterdrückung
    • Optimiert für Windgeräuschunterdrückung für CAMCORDER
    • Optimiert für die Unterdrückung von stationärem Rauschen für VOICE_COMMUNICATION
  • Automatische Verstärkungsregelung
    • Optimiert für Nahgespräche über das VOICE_COMMUNICATION- und das Hauptmikrofon des Smartphones
    • Optimiert für die Fernfeldmikrofonie für CAMCORDER

Ressourcen

Weitere Informationen finden Sie in den folgenden Ressourcen: