A vendég saját zenéje és a hangos idegenvezetés egy járművön
A feladat elsőre egyszerűnek hangzik: a vendégek Bluetooth-on a jármű hangfalára teszik a saját zenéjüket, és amikor a busz odaér egy nevezetességhez, a zene halkuljon le, szólaljon meg az ismertető, majd a zene folytatódjon. Ez a hangprioritás. És bár szoftveres feladatnak látszik, nem az — alább elmagyarázom, miért, és mi az, ami helyette működik.
Miért nem oldható meg az appból?
Az Android tud hangfókuszt kezelni: ha egy app megszólal, a többi elhalkul. Csakhogy ez a készüléken belül működik. Azt tudja szabályozni, ami az adott telefonon szól.
A tipikus buszos felállásban viszont a vendég a saját telefonjáról küldi a zenét, közvetlenül a jármű hangrendszerére. Az a hang meg sem fordul a fedélzeti készülékünkön: a vendég telefonja az adó, a jármű hangfala a vevő, mi pedig egy harmadik, kívülálló eszköz vagyunk. Nincs mit lehalkítani.
Elvi kiút lenne, ha a mi eszközünk fogadná a vendég zenéjét, azt keverné a saját hangjával, és a kettőt együtt küldené tovább. Ehhez viszont a fedélzeti eszköznek Bluetooth-vevőként kellene működnie — ezt a szerepet a legtöbb Android készülék nem teszi elérhetővé, és ami elérhető, az nem az a fajta megbízhatóság, amit egy egész nap forgalomban lévő buszra ki lehet tenni.
Hol dől el a kérdés: a hangútvonalon
A hangprioritás ott dől el, ahol a két hangforrás először találkozik. Ma jellemzően sehol nem találkoznak: a vendég zenéje egyenesen a hangfalra megy, az ismertetőnek pedig nincs hova belépnie. Az első lépés tehát nem programozás, hanem a jel útjának átrendezése:
- a vendég zenéje egy Bluetooth-vevőbe érkezik,
- a fedélzeti készülék hangja egy külön bemenetre megy,
- a kettő egy egységben találkozik, amely eldönti, melyik szól hangosabban,
- és onnan megy tovább egy jel a jármű erősítőjére vagy a rádió AUX-bemenetére.
Ez a köztes egység a ducker. Ha ez megvan, a szoftver dolga már csak annyi, ami eleve a dolga: a megfelelő helyen megszólaltatni a megfelelő hangfájlt.
A hardveres ducker
A ducker egy kis hangtechnikai doboz, amelynek van egy elsőbbségi (priority) és egy zenei bemenete. Amikor az elsőbbségi bemeneten megjelenik a jel, automatikusan lehúzza a zenei bemenet szintjét, majd a beszéd végét követő beállított idő múlva visszaengedi. Ugyanez a mechanizmus szólaltatja meg az áruházi hangosbemondót a háttérzene fölött — évtizedek óta bevált, kiszámítható és nem függ a vendég telefonjától.
Ilyen célra való például a Rolls DU30b típusú automatikus lehalkító; a lényeg nem a márka, hanem a képesség: legyen valódi priority-bemenete, és legyen állítható a lehalkítás mértéke, valamint a visszaengedés késleltetése.
A hardvert a gyakorlatban az üzemeltető veszi meg, a saját számlájára és garanciájával. Az én dolgom a specifikáció, a beüzemelés és a behangolás — így nincs hardver-felár, és a garanciális ügyintézés is ott marad, ahol lennie kell.
A következmény, amit ki kell mondani
A megoldásnak van egy következménye, amit érdemes az elején tisztázni, nem az első üzemnapon: a vendég ezután nem a jármű eddigi hangfalához párosít, hanem a mi eszközünkhöz. A hangútvonalat a ducker veszi át.
Ez a személyzetnek napi szintű különbség: más név jelenik meg a párosítási listában, és a sofőrnek tudnia kell, mit mondjon, ha egy vendég a régi eszközt keresi. Kicsi dolog, de ha nincs kimondva, az első hétvégén panasz lesz belőle.
Behangolás: mennyit és meddig halkítson?
A beállítás nem elméleti kérdés, menet közben derül ki. Három paraméter számít:
- A lehalkítás mértéke. A teljes némítás ritkán jó: néma csend támad, és a vendég azt hiszi, elromlott valami. A halkan megmaradó zene alatt a szöveg érthető marad, és a hatás természetesebb.
- A megszólalás gyorsasága. Ha túl lassan húzza le a zenét, az ismertető első szavai elvesznek.
- A visszaengedés késleltetése. Ha túl rövid, a mondatok közti szünetekben a zene fel-le ugrál — ez nagyon idegesítő. Néhány másodperc tartás kell.
Ezt egy asztali standon lehet előkészíteni, de véglegesíteni csak a járművön, menet közben lehet: a motorzaj, a nyitott ablak és az utastér akusztikája együtt döntik el, mi az érthető. A GPS-oldali próbákhoz rögzített GPX-nyomvonalat használok visszajátszásra — így a hibák megismételhetők, nem kell újra kimenni a buszra minden apró módosításért.
Gyakori kérdések
Le tudja halkítani egy Android app a vendég Bluetooth-on szóló zenéjét?
Nem. Az Android hangfókusz-kezelése csak a saját készülékén belül működik: azt tudja szabályozni, ami az adott telefonon szól. Ha a vendég a saját telefonjáról közvetlenül a jármű hangrendszerére küldi a zenét, az a hang meg sem fordul a mi eszközünkön, tehát nincs mit lehalkítani rajta.
Mi az a ducker?
Egy hangtechnikai egység, amely két bemenet közül az egyiket elsőbbségi bemenetként kezeli. Amikor azon jel jelenik meg, automatikusan lehúzza a másik bemenet szintjét egy beállított értékkel, majd a jel megszűnése után egy megadott idővel visszaengedi. Ezt hívják automatikus lehalkításnak vagy duckingnak, és paging-alkalmazásokban évtizedek óta bevált.
Ha duckert használunk, hova csatlakozik ezután a vendég?
A ducker elé kötött Bluetooth-vevőhöz, nem a jármű eddigi hangfalához. Ez fontos következmény: a hangútvonalat a ducker veszi át, tehát a vendégek párosítási élménye megváltozik, és a személyzetnek erről tudnia kell.
Teljesen elnémuljon a zene, vagy csak halkuljon le?
Ez üzemeltetői döntés, és a duckeren beállítható. A gyakorlatban a részleges lehalkítás szokott jobban működni: a zene halkan megmarad a szöveg alatt, így nem támad néma csend, és a vendég sem hiszi azt, hogy elromlott valami. Teljes némítás akkor indokolt, ha a jármű zajszintje mellett másképp nem érthető a szöveg.
Ilyen felállásban gondolkodik?
Írja meg, mi van ma a járművön — fejegység, erősítő, hova párosít a vendég —, és megmondom, mi kell hozzá. Egy fotó a hangrendszerről többet ér, mint egy oldalnyi leírás.
Kérdezek