Android 10, birden fazla cihaz gerektiren kullanıcı deneyimini iyileştirir. etkin ses yakalamanın aynı anda gerçekleşmesi gerekir (örneğin, kullanıcı bir Bir erişilebilirlik hizmeti tarafından sağlanan sesli komutlara sahip VoIP araması veya video kaydedici.
Ses çerçevesi yalnızca belirli ayrıcalıklı uygulamaların ses kaydını yakalamasına izin veren politikayı uygular normal uygulamalarla eşzamanlı olarak gösterir.
Eşzamanlılık politikası, bir uygulamanın kaydı başlatmasını engellemek yerine, yakalanan sesin kapatılmasıyla uygulanır. Bu, çerçevenin çalışma şeklini dinamik olarak bir uygulamanın, veri yakalamayı etkinleştirmesine engel olmadan, etkin yakalama kullanım Bu sayede başka bir uygulama, mikrofonun tam erişimini kurtarabilir ve bunu yakalamayı bitirdik.
Ses HAL'i ve ses alt sisteminin bu durumda yapması gereken, bazı durumlarda etkin bir istemciye sessiz olmayan ses sağlayan tek bir akış olsa bile aynı anda birden fazla etkin giriş akışını desteklemektir.
CDD şartları
Şu kaynak için CDD'ye bakın: [{2/}].
Ses HAL'sindeki durumları yakalayın
Eşzamanlı yakalama senaryosu, etkin giriş akışlarının sayısı, giriş cihazı seçimi veya ön işleme yapılandırması açısından farklı durumlara neden olabilir.
Eşzamanlılık şunlar arasında gerçekleşebilir:
- Uygulama işlemcisinden (AP) çeşitli giriş akışları
- Giriş akışları ve sesli arama
- Düşük güçlü özel kelime algılamayı uygulayan giriş akışları ve ses DSP'si
AP giriş akışlarının eşzamanlı etkinliği
Ses politikası yapılandırma dosyası audio_policy_configuration.xml
, ses çerçevesi tarafından aynı anda kaç giriş akışının açılabileceğini ve etkin olabileceğini belirlemek için kullanılır.
Ses HAL'si, en azından her girişin en az bir örneğini desteklemelidir
profili (sink
rolündeki mixPort
) açık
ve etkin bir yapılandırma dosyası olduğundan emin olun.
Cihaz Seçimi
Aynı HAL giriş akışına birkaç etkin istemci bağlandığında çerçeve, kullanım alanı önceliğine göre bu giriş akışı için uygun cihazı seçer.
Birden fazla giriş akışı etkin olduğunda her akış farklı bir cihaz seçimine sahip olabilir.
Teknoloji uyumluysa ses HAL'sinin kullanılması önerilir. Bluetooth mikrofonlu kulaklık gibi farklı cihazlardan gelen farklı akışların yakalanmasına olanak tanır. ve yerleşik mikrofon.
Uyumsuzluk varsa (örneğin, iki cihaz aynı dijital ses arayüzünü paylaşıyorsa) ses HAL'si, cihaz seçimini hangi yayının kontrol ettiğini seçmelidir.
Bu durumda:
- Sonuç olarak elde edilen durum tutarlı olmalı ve aynı cihaz seçildiğinde aynı cihaz seçimini sunmalıdır. tekrarlanır.
- Eşzamanlılık durumu sona erdiğinde kalan etkin akışın başlangıçta bu akışta istenen cihaz.
Etkin kullanım alanları arasında ses HAL'si tarafından bir öncelik sırası tanımlanırsa
source_priority()
bölgesinde bulundu
frameworks/av/services/audiopolicy/common/include/policy.h
Seçim ön işleniyor
Ses çerçevesi, addEffect()
veya removeEffect()
HAL yöntemlerini kullanarak bir giriş akışında ön işleme isteyebilir.
Ses çerçevesi, belirli bir giriş akışındaki ön işleme için yalnızca giriş akışındaki en yüksek öncelikli etkin kullanım alanına karşılık gelen yapılandırmayı etkinleştirir. Ancak, kullanım alanının etkinleştirilmesi ve devre dışı bırakılması sırasında bazı çakışmalar olabilir. eş zamanlı iki etkin işlemin (örneğin, iki yankı iptali örneği) çalışmasına neden olmak aynı giriş akışında çalışır. Bu durumda HAL uygulaması, hangi isteğin kabul edileceğini seçer; etkin istekleri izler ve iki işlem de devre dışı bırakıldığında doğru durumu geri yükler.
Birkaç yakalama akışı aynı anda etkin olduğunda, farklı ön işleme istekleri farklı farklı akışlarda yayınlanabilir.
HAL ve ses alt sistemi uygulamaları, aynı giriş cihazını paylaşsalar bile farklı akışlara farklı ön işleme uygulanmasına olanak tanımalıdır. Yani, bir önceden işleme kullanılmalıdır.
Belirli bir ses alt sisteminde teknik nedenlerle bu mümkün değilse ses HAL'si kullanılmalıdır. listelenenlere benzer öncelik kurallarına Cihaz seçimi.
AP'den eşzamanlı sesli arama ve kayıt
AP'den yakalama işlemi sesli arama etkin durumdayken yapılabilir. Bu durum Android 10'da yeni değildir ve doğrudan eşzamanlı çekim özelliğiyle ilgili değildir ancak bu senaryoya ilişkin kurallardan bahsetmek faydalı olacaktır.
Arama sırasında, erişim noktasından iki farklı türde yakalama gerekir.
Arama RX ve TX'sini yakalama
Aramanın alınması ve gönderilmesi, ses kaynağı AudioSource.VOICE_UPLINK
veya AudioSource.VOICE_DOWNLINK
ve/veya cihaz AudioDevice.IN_TELEPHONY_RX
kullanılarak tetiklenir.
Ses HAL'leri, AudioDevice.IN_TELEPHONY_RX
cihazından kullanılabilen bir rotayla giriş profilinde (sink
rolünün mixPort
) gösterilmelidir.
Bir arama bağlandığında (ses modu AudioMode.IN_CALL
) olabilir
AudioDevice.IN_TELEPHONY_RX
cihazından en az bir etkin yakalama akışı olmalıdır.
Arama etkinken giriş cihazlarından veri yakalama
Bir arama etkinken (ses modu AudioMode.IN_CALL
ise) AP giriş akışlarının eşzamanlı etkinliği bölümünde belirtildiği gibi AP'den giriş akışlarını açıp etkinleştirmek mümkün olmalıdır.
Ancak AP giriş akışlarından gelen isteklerle çakışma olması durumunda cihaz seçimi ve ön işleme önceliği her zaman sesli görüşmeye göre belirlenmelidir.
DSP ve AP'den eşzamanlı yakalama
Ses alt sistemi, düşük güç tüketimi gerektiren ses bağlamı veya özel kelime algılama işlevlerini destekleyen bir DSP içeriyorsa uygulama, AP ve ses DSP'sinden eşzamanlı olarak veri yakalamayı desteklemelidir.
Buna hem ilk algılama aşamasında DSP tarafından yapılan yakalama hem de DSP tarafından algılama tetiklendikten sonra AP tarafından AudioSource.HOTWORD
ile yapılan yakalama dahildir.
Bu, ses tetikleyici HAL tarafından bildirilen eşzamanlı yakalama işaretiyle yansıtılmalıdır.
uygulama tanımlayıcısı: ISoundTriggerHw.Properties.concurrentCapture = true
.
Ses HAL'si ayrıca,
AudioInputFlag.HW_HOTWORD
. Uygulama, yeni bir e-posta programında
bu profilde en az ses modeli sayısına eşit sayıda akış etkinleştirmesi
Ses tetikleyici HAL ile eş zamanlı olarak yüklenebilir.
Diğer giriş profilleri etkin durumdayken bu giriş profilinden yakalama yapılabilir.
Asistan uygulamalarına ilişkin çıkarımlar
Veri kullanımı ve kullanıcı bildirimi ile ilgili şartlar
Eş zamanlı mikrofon kullanımı, kötüye kullanılırsa kullanıcının gizli verilerini sızdırabileceğinden aşağıdakilere ihtiyacımız vardır: korumayı isteyen ayrıcalıklı, önceden yüklenmiş uygulamalara uygulanacağını garantiler Asistan rolü.
- Kullanıcı Asistan ile etkileşimde bulunmadığı sürece mikrofon aracılığıyla toplanan veriler cihazdan dışarı çıkmamalıdır. Örneğin, özel kelime tetiklendikten sonra.
- Eş zamanlı olarak dinleyen uygulamalar, özel kelimeden sonra kullanıcıya görsel ipuçları sağlamalıdır. tespit edilir. Bu, kullanıcıların sonraki görüşmelerin farklı bir aşamadan geçeceğini anlamalarına yardımcı olur ayarlarını kullanabilirsiniz.
- Kullanıcılar mikrofonu veya Asistan tetikleyicilerini kapatabilmelidir.
- Kullanıcılar, depolanan ses kayıtlarına erişebilir, bunları inceleyebilir ve istediğiniz zaman silebilirsiniz.
Android 10 için işlevsel iyileştirmeler
Asistanlar birbirini engelleyemiyor
Android 9 veya önceki sürümlerde, cihazda iki tane her zaman açık Asistan varsa bunlardan yalnızca biri kendi özel kelimesini dinleyebilir. Bu nedenle, iki asistan arasında geçiş yapılması gerekiyordu. Android 10'da varsayılan Asistan, diğer Asistan ile eşzamanlı olarak dinleme yapabilir. Bu sayede her iki Asistan da kullanıcılara çok daha sorunsuz bir deneyim sunabilir.
Mikrofonu açık tutan uygulamalar
Shazam veya Waze gibi uygulamalar mikrofonu açık tuttuğunda varsayılan Asistan sizi dinlemeye devam edebilir anlamına gelir.
Varsayılan olmayan Asistan uygulamaları için Android 10'da davranışta herhangi bir değişiklik yoktur.
Örnek ses HAL uygulaması
Bu dokümandaki yönergelere uygun bir ses HAL'i uygulaması örneğini AOSP'de bulabilirsiniz.