Android 13, OEM'lerin Tedarikçi firmaya özel gereksinimlere gerek kalmadan uzamsal ses ve baş hareketini destekleme SDK'ları kullanabilirsiniz.
Üç boyutlu ses, çevreyi çevreleyen bir ses alanı oluşturmak için kullanılan bir teknolojidir dinleyicidir. Üç boyutlu ses, kullanıcıların kanalları ve ayrı ayrı sesleri algılamasını sağlar. transdüserlerin fiziksel konumlarından farklı konumlarda oynatma için kullanılan ses sistemi. Örneğin, üç boyutlu ses, kullanıcıya kulaklık üzerinden çok kanallı müzik dinleme olanağı sağlar. Mekansal özellikleri kullanma ses, kulaklık kullanıcıları önlerindeki konuşmaları algılayabilir ve Ancak oynatma için yalnızca iki transdüser kullanın.
Kafa hareketi izleme özelliği, kullanıcının üç boyutlu sesin yapısını anlamasına yardımcı olur kafalarının etrafında simüle edilen sahne. Bu deneyim yalnızca Gecikme süresi düşüktür. Burada gecikme, kullanıcının kullanıcının e-posta ile başlarını hareket ettirir ve sanal hoparlörün yerinin hareket ettiğini ne zaman duyduklarını buna göre hazırlar.
Android 13 üç boyutlu ses ve kafa optimizasyonu için optimizasyon yapar mümkün olan en düşük seviyede mekansal ses işleme sunarak gecikmeyi mümkün olan en düşük gecikmeyle elde etmek için gereklidir.
Mimari
Android 13'te değiştirilmiş Android ses çerçevesi ve API Ekosistemde uzamsal ses teknolojisinin benimsenmesini kolaylaştırır.
Aşağıdaki şekilde, Android 13'te ses ardışık düzeni mimarisi:
Şekil 1. Mekanizmalı ses ardışık düzeni mimarisi
Yeni modelde ses çerçevesinin bir parçası olan ses uzaklaştırıcı, ses çerçevesinin bir parçası. kod çözücüden ayrıştırılır. Ekran konumu belirleyici, karma ses içeriklerini ve Ses HAL'ye stereo yayın oluşturur. Uzamlaştırıcıyı kod çözücü, OEM'lerin kod çözücü ve mekansallaştırıcı için farklı tedarikçiler seçebilmesini sağlar baş takibi için istenen gidiş dönüş gecikmesini elde etmektir. Bu yeni model Ayrıca, baş takibi için sensör çerçevesine kancalar da içerir.
Aşağıdaki şekilde, ses çerçevesinin sistem mimarisi gösterilmektedir seslendirme ve baş hareket izleme efekti için:
Şekil 2. Mekanizasyon aracı ve baş hareketini izleyen sistem mimarisi
Tüm uzamsal ses API'leri herkese açık olarak gruplandırılır.
Uygulama düzeyinde Spatializer
sınıfı. SpatializerHelper
Yönetilecek Sistem Arayüzü bileşenlerine sahip ses hizmeti arayüzlerinde sınıf
Platforma ve bağlı cihaza göre mekanleştiriciyle ilgili işlevler
özellikler. Ses politikası hizmetindeki yeni Spatializer
sınıfı,
Şuna göre çok kanallı karıştırma ve konumlandırma için gereken ses grafiği:
OEM tarafından ifade edilen özelliklerin,
bağlı cihazlar ve etkin kullanım alanları. Yeni bir mikser sınıfı SpatializerThread
, çok kanallı kanalları karıştırıp elde edilen karışımı, işleme sonrası FX'e iletir.
ses HAL'ye stereo çıkış oluşturan bir motor içerir. Kafa hareketi izleme için
Kafa hareketi izlemeyle ilgili SpatializerPoseController
sınıf grubu işlevleri,
yapay zekayı kullanan sensör sinyallerini birleştirmek ve filtrelemek için
efekt motoruna aktarılır. Kafa hareketi izleme sensörü verileri, HID protokolü üzerinden aktarılır
edinemezsiniz.
Android 13 ses ardışık düzeni mimarisindeki değişiklikler şu konularda iyileştirme yapabilirsiniz:
- Dengeleyici ile kulaklık arasındaki gecikme azaltılıyor.
- Uygulama geliştiricilere hizmet sunmak için birleştirilmiş API'ler sağlama.
- Baş hareketi izleme durumunu sistem API'leri aracılığıyla kontrol etme.
- Kafa hareketi izleme sensörlerini keşfetme ve bunları etkin ses cihazlarıyla ilişkilendirme.
- Çeşitli sensörlerden gelen sinyalleri birleştirme ve mümkün olan baş duruşunu hesaplama etki motoru tarafından tüketilir.
Yanlılık dengelemesi, hareketsizlik algılama ve hız sınırlaması gibi işlevler baş izleme yardımcı programı kitaplığı kullanılarak uygulanması gerekir.
Üç boyutlu ses API'leri
Android 13 üç boyutlu ses sistemi ve geliştirici sunuyor API'ler.
OEM'ler, uygulama davranışını özellik kullanılabilirliğine ve etkin duruma göre uyarlayabilir. ve sistem API'leri tarafından ayarlanır. Uygulamalar ayrıca ses özelliklerini üç boyutlu sesi devre dışı bırakma sağlamak veya ses akışının mümkün olduğunu uzamsal ses için zaten işlenmiş.
Geliştiricilere yönelik API'ler için Spatializer
bölümüne bakın.
OEM'ler, Ses ve Bluetooth ayarları kullanıcı arayüzünü uygulamak için sistem API'lerini kullanabilir. Kullanıcının uzamsal sesin ve başın durumunu kontrol etmesini sağlayan özelliğini kullanıyor. Kullanıcı, üç boyutlu sesi etkinleştirebilir veya devre dışı bırakabilir için ses ayarları kullanıcı arayüzünde hoparlör ve kablolu kulaklığınızı bulun. Uzamsal hoparlörün ses ayarı yalnızca Üç Boyutlulaştırıcı efekti varsa kullanılabilir uygulama, ötesi modu desteklemektedir.
Kullanıcı ayrıca Her cihazın Bluetooth cihaz ayarı. Kafa hareketi izleme ayarı kullanılabilir yalnızca Bluetooth mikrofonlu kulaklık, kafa hareketi izleme sensörünü gösteriyorsa kullanılabilir.
Üç boyutlu ses için varsayılan ayarlar her zaman AÇIK'tır.
desteklenir. Bkz. Spatializer.java
sayfasını ziyaret edin.
Sensor.TYPE_HEAD_TRACKER
türünde yeni baş izleme sensörü
Sensör çerçevesi ve Sensör HAL tarafından dinamik bir sensör olarak gösterilir
Bluetooth veya USB.
Üç boyutlu sesi entegre etme
OEM'ler, seslendirme efekt motorunun yanı sıra OEM'lerin üç boyutlu ses desteği platformu.
Gereksinimler
Üç boyutlu sesin entegre edilmesi için aşağıdaki şartların karşılanması gerekir:
- Ses HAL ve ses DSP'si, üç boyutlu görüntü için özel bir çıkış yolunu desteklemelidir. ses'e dokunun.
- Kafa hareketini izleyen dinamik üç boyutlu ses için kulaklıkların yerleşik kafası olmalıdır takip cihazı sensörleri.
- Uygulama, baş takibi için önerilen standarda uygun olmalıdır HID protokolü üzerinden Bluetooth mikrofonlu kulaklığı telefona bağlayın.
- Ses HAL 7.1 sürümü Üç boyutlu ses desteği için gereklidir.
Üç boyutlu sesi entegre etmek için aşağıdaki adımları uygulayın:
device.mk
dosyanızda üç boyutlu ses desteğini aşağıdaki şekilde beyan edin:PRODUCT_PROPERTY_OVERRIDES += \ ro.audio.spatializer_enabled=true
Bu işlem,
AudioService
ürününün mekansalleştirici desteğini başlatmasına neden olur.Üç boyutlu ses miksi için özel çıkış bildir
audio_policy_configuration.xml
, şöyle:<audioPolicyConfiguration> <modules> <module> <mixPorts> <mixPort name="spatializer" role="source" flags="AUDIO_OUTPUT_FLAG_SPATIALIZER"> <profile name="sa" format="AUDIO_FORMAT_PCM_FLOAT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
audio_effects.xml
uygulamasında mekansallaştırıcı efekti kitaplığını aşağıdaki gibi tanımlayın:<audio_effects_conf> <libraries> <library name="spatializer_lib" path="libMySpatializer.so"/> … </libraries> <effects> <effect name="spatializer" library="spatializer_lib" uuid="myunique-uuid-formy-spatializereffect"/>
Mekanizasyon efektini uygulayan tedarikçiler aşağıdakilere uymalıdır:
- Efekt'teki diğer efektlerle aynı temel yapılandırma ve kontrol HAL.
Çerçevenin desteklenenleri keşfetmesi için gereken belirli parametreler özellikler ve yapılandırma, örneğin:
SPATIALIZER_PARAM_SUPPORTED_LEVELS
SPATIALIZER_PARAM_LEVEL
SPATIALIZER_PARAM_HEADTRACKING_SUPPORTED
SPATIALIZER_PARAM_HEADTRACKING_MODE
SPATIALIZER_PARAM_SUPPORTED_CHANNEL_MASKS
SPATIALIZER_PARAM_SUPPORTED_SPATIALIZATION_MODES
SPATIALIZER_PARAM_HEAD_TO_STAGE
Daha fazla bilgi için bkz.
effect_spatializer.h
.
Öneriler
OEM'lerin uygulama sırasında aşağıdaki yönergeleri kullanmasını öneririz:
- Birlikte çalışabilirliği kolaylaştırmak ve gecikme yaşamak için mümkün olduğunda LE Audio kullanın hedefler.
- Sensör hareket algılamasından gelen sese kadar gidiş dönüş gecikmesi: iyi bir kullanıcı deneyimi için 150 ms'den az olması gerekir.
- Gelişmiş Ses Dağıtım Profili (A2DP) ile Bluetooth (BT) Classic için:
- Opus gibi düşük gecikmeli bir codec kullanın.
- Gecikme denetimi işlevlerini Ses HAL'sinde uygulayın. Bu, baş takibi aşağıdaki durumlarda güç ve performans optimizasyonu sağlar: ve uygun olmayan koşullarda baş hareketini devre dışı bırakmak gibi.
Doğrulama
Üç boyutlu ses özelliğinin işlevselliğini doğrulamak için CTS testlerini kullanın
SpatializerTest.java
içinde bulabilirsiniz.
Uzamsallaştırma veya baş izleme algoritmalarının yanlış uygulanması, Gidiş dönüş gecikmesi önerisinin yerine getirilmemesi Öneriler.