Pengembangan Adblock Radio



tl; dr: Adblock Radio mengenali iklan audio menggunakan pembelajaran mesin dan teknik mirip Shazam. Mesin sumber terbuka utama: gunakan dalam produk Anda! Anda dapat bergabung untuk mendukung lebih banyak stasiun radio dan podcast.

Hanya sedikit orang yang suka mendengarkan iklan radio. Saya meluncurkan proyek AdblockRadio.com sehingga pendengar dapat melewati iklan di radio Internet favorit mereka. Algoritme ini diterbitkan open source , dan artikel ini menjelaskan cara kerjanya.

Adblock Radio telah menguji data nyata dari lebih dari 60 stasiun radio di tujuh negara . Ini juga kompatibel dengan podcast dan berfungsi dengan sangat baik!

Dibandingkan dengan implementasi sebelumnya, algoritma kami menawarkan pendekatan universal, pemrosesan utas dari berbagai sumber. Dari implementasi sebelumnya, seseorang mengandalkan metadata radio Internet , tetapi hanya sebagian kecil dari radio yang kompatibel dengan metode ini. Implementasi lain mengakui jingle yang dikenal , tetapi dalam banyak kasus awal dan akhir jeda iklan tidak ditandai oleh jingle.

Selain mendeteksi iklan, algoritma yang diusulkan dapat membedakan percakapan dari musik. Karena itu, Anda juga dapat menghindari obrolan dan hanya mendengarkan musik.

Ini adalah laporan pekerjaan pribadi saya selama hampir tiga tahun. Saya meluncurkan Adblock Radio pada akhir 2015, beberapa bulan setelah lulus dari sekolah pascasarjana dalam fisika plasma fusi. Ketika Adblock Radio mendapatkan ketenaran pada tahun 2016, saya menerima ancaman dari pengacara dari stasiun radio Prancis (lebih lanjut di bawah). Saya harus menutup sebagian situs, mengubah arsitektur sistem, lebih baik mempelajari konsekuensi hukum, dll. Hari ini saya percaya bahwa AdBlock Radio akan jauh lebih berkembang dalam paradigma inovasi terbuka .

Artikel ini memiliki tiga bagian. Mereka dirancang untuk audiens yang berbeda. Anda dapat menggulir ke bawah atau mengklik nama untuk langsung ke bagian yang diinginkan.

  • Deteksi iklan: strategi yang terbukti . Untuk orang-orang yang secara teknis cerdas, ilmuwan, spesialis analisis data ... Berikut adalah berbagai metode teknis yang saya coba untuk mendeteksi iklan, termasuk pengenalan suara, sidik jari suara, dan pembelajaran mesin. Pikiran tentang opsi untuk pekerjaan lebih lanjut.
  • Tidak disarankan untuk menjalankan Radio Adblock di cloud . Untuk pengembang perangkat lunak dan orang-orang yang tertarik pada hak cipta. Kami akan membahas betapa sulitnya untuk menemukan kompromi yang memuaskan antara batasan teknis dan hukum ketika meluncurkan Adblock Radio di layanan cloud. Karena alasan ini, sebaiknya menjalankan Radio Adblock hanya di perangkat pengguna akhir.
  • Anda dapat mengintegrasikan Radio Adblock ke dalam pemutar Anda . Untuk produsen, pemilik produk, desainer UX, teknisi ... Saya sedang mempertimbangkan ide untuk mengintegrasikan algoritma open source ke dalam produk akhir, termasuk pemain mobil, dan menekankan perlunya umpan balik dari pengguna tentang kasus-kasus kerusakan. Ini diperlukan untuk menjaga sistem. Akhirnya, berikut adalah tips tentang cara membuat antarmuka pengguna yang tepat. Saya mengharapkan banyak umpan balik tentang topik ini.



Adblock Radio mengembalikan kenikmatan mendengarkan radio

Deteksi Iklan: Strategi Terbukti


Untuk memblokir iklan, Anda harus mendeteksinya terlebih dahulu. Tujuannya adalah untuk mendeteksi iklan dalam aliran audio tanpa bantuan dari stasiun radio. Ini bukan tugas yang mudah. Saya mencoba beberapa pendekatan sebelum mendapatkan hasil yang baik.

1. Metode sederhana (tidak berfungsi)


Volume


Gagasan pertama adalah memeriksa volume suara, karena iklannya sangat keras! Untuk iklan, kompresi akustik sering digunakan. Ini adalah kriteria yang menarik, tetapi tidak cukup untuk membedakan iklan. Misalnya, strategi ini bekerja cukup baik untuk stasiun musik klasik, di mana iklan biasanya lebih keras daripada musik. Tapi pop sama kerasnya dengan iklan. Selain itu, beberapa iklan dapat sengaja dibuat diam untuk menghindari deteksi.

Kunci Jam


Gagasan lain adalah bahwa iklan disiarkan sesuai jadwal pada waktu tertentu. Sampai taraf tertentu ini benar, tetapi tidak ada keakuratan. Sebagai contoh, saya menonton acara pagi di stasiun Prancis tidak dimulai tepat pada waktu yang sama, dengan variasi hingga dua menit. Stasiun radio dapat dengan mudah menghindari kunci seperti itu dengan secara acak menggeser programnya beberapa puluh detik.

Metadata


Solusi yang jelas adalah mengandalkan metadata ICY / Shoutcast untuk pemain seperti VLC untuk menampilkan informasi streaming. Sayangnya, sebagian besar data ini rusak. Orang dapat mengambil informasi dari siaran langsung di situs-situs stasiun radio (saya mengembangkan alat untuk ini ), tetapi paling sering iklan tidak diidentifikasi apa adanya. Biasanya selama beriklan di situs menampilkan nama lagu atau program sebelumnya. Satu pengecualian penting adalah Jazz Radio , yang menulis "la musique revient vite ..." selama iklan (musik akan segera kembali). Sebagai kesimpulan, perlu dicatat bahwa ini adalah strategi yang tidak dapat diandalkan, karena stasiun radio dapat dengan mudah mengubah metadata.

Penandaan manual


Lagi pula, deteksi iklan dimungkinkan tanpa algoritma apa pun! Anda cukup meminta beberapa pendengar untuk menekan tombol ketika sebuah iklan dimulai dan berakhir. Pendengar lain akan mendapat manfaat dari ini. Ini adalah strategi set-top box TiVo Bolt . Ini memungkinkan Anda untuk menghapus iklan di saluran yang ditetapkan pada waktu yang ditentukan. Ini memberikan hasil yang sangat baik, tetapi tidak menskala dengan baik ke ribuan stasiun radio.

Kerugiannya adalah sulit untuk memulai sistem dari awal. Mungkin tidak ada cukup banyak pemirsa di stasiun baru untuk operasi yang tepat. Pendengar pertama akan marah dan pergi, sehingga stasiun tidak akan pernah mengumpulkan audiens yang cukup besar.

Kesulitan lain adalah bahwa stasiun radio akan ingin mengirim sinyal palsu untuk menyabotase sistem. Ini membutuhkan mekanisme moderasi, sistem konsensus atau ambang batas untuk pemungutan suara.

Crowdsourcing adalah ide bagus. Saya pikir itu terlihat lebih baik jika algoritma melakukan sebagian besar pekerjaan, meninggalkan minimum untuk orang. Inilah yang saya lakukan.

2. Pengenalan ucapan dan analisis bidang leksikal (kegagalan)


Iklan selalu merupakan topik dan bidang leksikal yang sama: membeli mobil, mendapatkan kupon supermarket, mendaftar untuk asuransi, dll. Jika Anda mengenali pembicaraan, Anda dapat menggunakan alat standar untuk memerangi spam . Ini adalah jalur penelitian pertama saya pada akhir 2015, tetapi saya tidak dapat menerapkan pengenalan ucapan.

Sebagai pemula dalam pemrosesan pidato, saya mulai dengan membaca Huang's Speech Processing , sebuah buku yang bagus, meskipun sedikit ketinggalan zaman. Saya meletakkan tangan kecil saya yang kotor di CMU Sphinx , mesin pengenalan suara gratis terbaik saat itu.

Upaya pertama memberikan hasil yang sangat buruk dan membutuhkan perhitungan intensif pada CPU. Saya menggunakan parameter default: kamus Prancis standar (daftar kata yang mungkin dan fonem yang sesuai), model bahasa (probabilitas urutan kata) dan model akustik (koneksi fonem dengan bentuk gelombang suara).

Upaya untuk memperbaiki sistem itu sia-sia: pengakuan masih bekerja dengan buruk. Saya mengatur model kosakata dan bahasa pada set data kecil, berbagi suara dengan alat diarisasi . Dia juga mengadaptasi model akustik MLLR ke stasiun radio Europe 1 (Prancis), di mana dia melatih sistem.

Secara umum, gagasan pengenalan ucapan harus ditinggalkan. Ini mungkin untuk para ahli. Namun, di masa depan Anda dapat kembali ke sana. Sejak 2015, kemajuan signifikan telah dicapai dalam pengenalan ucapan. Alat open source baru telah diterbitkan, seperti Mozilla Deep Speech .

3. Crowdsourcing basis iklan, deteksi dengan sidik jari suara (mendorong)


Versi pertama Adblock Radio pada tahun 2016 bekerja dengan basis data iklan. Sistem terus mendengarkan aliran suara untuk mencari iklan. Hasilnya benar-benar menjanjikan, tetapi sulit untuk tetap memperbarui basis tersebut.

Teknik pencarian sidik jari mirip dengan apa yang Shazam lakukan di servernya untuk mengenali lagu. Algoritma jenis ini umumnya dikenal sebagai landmark . Saya mengadaptasinya untuk bekerja pada streaming dan membuka kode sumber .

Sidik jari cocok untuk mendeteksi iklan, karena mereka berulang kali disiarkan dalam bentuk yang sama. Untuk alasan yang sama, ia mengenali musik. Tetapi teknik ini tidak akan berfungsi pada ucapan, karena orang tidak pernah mengucapkan kata dengan cara yang sama. Ini hanya mungkin dengan menyiarkan kembali program di malam hari, yang tidak menarik bagi kami. Jadi, iklan dan musik (sebagai "bukan iklan") harus dimasukkan ke dalam basis data sidik jari, tetapi tidak ada gunanya untuk memproses ucapan.

Pada dasarnya, sidik jari suara adalah konversi beberapa karakteristik suara menjadi serangkaian angka yang disebut sidik jari. Jika banyak cetak langsung sesuai dengan basis, kita dapat menyimpulkan bahwa iklan sedang dikirim. Untuk resolusi optimal, rentang waktu dan frekuensi diperlukan penyesuaian. Pola yang berbeda harus bervariasi dengan baik. Namun, sistem harus bekerja bahkan dengan sedikit perubahan dalam algoritma kompresi suara atau jika radio telah mengubah pengaturan equalizer. Terakhir, Anda harus membatasi jumlah cetakan agar tidak memuat sumber daya komputasi.


Contoh penghitungan cetakan suara. Latar belakang merah - spektrogram. Ini mencerminkan perubahan intensitas suara dalam frekuensi (frekuensi rendah di bawah). Pada peta ini, puncak spektral diidentifikasi (titik biru) dan terhubung (garis abu-abu). Posisi, panjang, dan orientasi setiap garis abu-abu diubah menjadi angka unik, cetak

Klasifikasi biner memberikan hasil: apakah sampel merupakan iklan atau tidak. Jika kita menganalisis kasus kesalahan, maka sistem hampir selalu menghasilkan hasil negatif palsu, yaitu, melewatkan iklan, dan sangat jarang mencatat konten yang baik sebagai iklan. Pengguna dapat melaporkan iklan yang tidak terdeteksi dengan satu klik, yang menyediakan antarmuka pengguna yang sangat baik. Suara yang sesuai secara otomatis ditambahkan ke database. Saya memoderasi tindakan ini a posteriori.

Sulit untuk memperbarui database, karena iklan sering berubah, dan iklan disiarkan dengan sedikit variasi. Mereka juga sering diperbarui, dalam beberapa kasus setiap beberapa hari. Beberapa aliran dengan jumlah pendengar yang kurang memadai sangat tidak dikenal.

Saya mengeksplorasi strategi menarik untuk mengotomatisasi sebagian pekerjaan pendengar. Iklan disiarkan dengan cara yang sama beberapa kali setiap hari. Ini dapat digunakan untuk mengidentifikasi mereka. Catatan mencari urutan berulang berulang (MRS). Konten lain juga diulangi, misalnya, lagu dan jingle (screensaver). Saya mengurutkan semua urutan berdasarkan panjang dan mengambil sampel dengan panjang sekitar 30 detik, khas iklan. Dengan demikian, sangat sering berhasil menangkap iklan. Tetapi kadang-kadang paduan suara lagu atau bahkan ramalan cuaca yang direkam muncul.

Saya menemukan cara untuk menyaring sebagian besar pengulangan musik: Saya menganalisis daftar putar stasiun, mengunduh lagu-lagu dan mengintegrasikannya ke dalam basis data dengan label “tidak ada iklan”. Oleh karena itu, semakin banyak kandidat untuk MRS ternyata menjadi iklan nyata. Namun tetap saja, tidak semua, sehingga bantuan pengguna tetap diperlukan.

Dibutuhkan lebih sedikit pekerjaan manual, tetapi beban server sudah menjadi masalah. Melihat ke belakang, pilihan SQLite untuk operasi basis data yang intensif sumber daya dan waktu ini bukanlah yang terbaik.

Untungnya, algoritme itu memiliki beberapa detik untuk menentukan apakah suara itu sebuah iklan atau tidak. Ini karena radio Internet menggunakan buffer audio, biasanya 4-30 detik, yang tidak segera diputar di perangkat pengguna akhir. Ini membantu mencegah jeda siaran jika terjadi kehilangan jaringan sementara.

Saya menggunakan buffer delay postprocessing ini untuk membuat prediksi algoritma lebih stabil dan sensitif terhadap konteks. Segera sebelum memutar suara pada perangkat pengguna akhir, algoritma melihat hasil perkiraan yang masih dalam buffer, serta yang lebih lama yang telah dimainkan. Ini memotong poin data yang dipertanyakan dengan beberapa sidik jari, menunjukkan histeresis . Ini juga memperhitungkan waktu rata-rata tertimbang untuk memuluskan kemungkinan kegagalan.


Adblock Radio di beberapa titik pada tahun 2016. Sorotan merah dari stasiun radio tempat iklan diputar saat ini terlihat sangat keren! Pengguna dapat menandai iklan yang dilompati dengan tombol biru. Tombol musik di awan di bagian atas memungkinkan Anda untuk mengekspor aliran MP3 khusus dengan iklan dihapus dari itu dan, jika fungsi ini dikonfigurasi, transisi yang mulus antara stasiun radio. Di bawah ini adalah tombol dan fungsi tambahan.

4. Klasifikasi iklan, percakapan dan musik dalam pembelajaran mesin (hampir siap!)


Versi berikutnya dari algoritma ini menganalisis akustik: dari suara rendah ke suara tinggi dan perubahan waktunya. Iklan-iklan baru yang tidak dikenal dideteksi hampir sama seperti iklan-iklan lama tempat pelatihan berlangsung, hanya dengan tanda-tanda kebisingan dan kepentingan. Ini adalah metode yang lebih kompleks untuk menganalisis volume suara (lihat diskusi sebelumnya).

Untuk ini, saya menggunakan alat pembelajaran mesin, yaitu perpustakaan Keras , yang terhubung ke Tensorflow . Ini memberikan hasil yang sangat baik dengan sedikit penggunaan CPU. Versi ini bekerja dalam produksi selama lebih dari satu tahun, dari awal 2017 hingga pertengahan 2018. Sekarang dimungkinkan untuk membedakan percakapan dan musik, oleh karena itu klasifikasi menjadi lebih akurat: alih-alih “iklan / bukan iklan” - “iklan / percakapan / musik”.

Kami akan mempelajari detailnya. Suara dikonversi ke peta 2D, di mana intensitas suara disajikan sebagai fungsi frekuensi dan waktu (pada skala sekitar empat detik). Kartu ini secara konseptual mirip dengan kartu merah di bab sidik jari. Perbedaan utama adalah bahwa alih-alih spektrum Fourier klasik, saya menggunakan koefisien Melcepstral yang relevan dalam konteks pengenalan ucapan.

Kartu berurutan dengan cap waktu yang berbeda kemudian dianalisis sebagai gambar dalam jaringan saraf berulang seperti LSTM (memori jangka pendek panjang). Setiap kartu dianalisis secara terpisah dari kartu lainnya (RNN tanpa pelestarian negara ), tetapi kartu tersebut saling tumpang tindih. Kartu-kartu itu berdurasi 4 detik, dan setiap detik yang baru muncul. Hasil akhir untuk setiap kartu adalah vektor softmax , misalnya, ad: 72%, talk: 11%, music 17% . Prakiraan ini kemudian diproses menggunakan metode yang sama seperti yang dijelaskan di bagian sidik jari.


Pratinjau hasil pembelajaran mesin biasa untuk dua stasiun radio. Sumbu horizontal mewakili sekitar 17 menit waktu. Garis hijau bergerak di antara tiga posisi: beriklan di atas, percakapan di tengah, dan musik di bawah (paling dekat dengan latar belakang abu-abu yang seragam). Area merah - interval mendengarkan pengguna. Jika algoritma memberikan prediksi yang salah, pengguna dapat memperbaikinya

Awalnya, saya melatih jaringan saraf pada set data yang sangat kecil. Saya mengembangkan UI (lihat gambar di atas) untuk memvisualisasikan perkiraan dan dapat menambahkan lebih banyak data untuk melatih model dengan kinerja yang lebih baik. Pada saat penulisan ini, set data pelatihan berisi sekitar sepuluh hari audio: 66 jam periklanan, 96 jam berbicara, dan 73 jam musik.

Meskipun bekerja dengan baik, akurasi klasifikasi masih ternyata sedikit lebih rendah dari ekspektasi pengguna (lihat bagian tentang peningkatan di masa depan di bawah). Dalam pelatihan, akurasi perkiraan kategori adalah 95%, tetapi klasifikasi yang salah yang tersisa membuat pengguna tidak senang.

Catatan untuk spesialis pemrosesan data: biasanya memberikan hasil formal, membagi set data menjadi himpunan bagian pelatihan dan pengujian. Saya pikir ini tidak masuk akal di sini, karena kumpulan data secara bertahap dibangun di atas data di mana model sebelumnya keliru. Ini berarti bahwa kumpulan data mengandung lebih banyak patologi daripada siaran rata-rata, dan akurasinya akan diremehkan. Pekerjaan terpisah akan diperlukan untuk mengukur indikator nyata. Operator dapat menandai segmen kontinu dari rekaman audio konvensional sebagai data uji, kemudian menghitung keakuratan dan mengingatnya. Pemeriksaan rutin semacam itu akan memungkinkan Anda untuk memantau kinerja filter.

Kategorisasi iklan / percakapan / musik menambah kenyamanan bagi pendengar. Namun, klasifikasi ini mempersulit antarmuka pengguna, dan menjadi lebih sulit untuk bekerja dengan laporan pengguna. Jika bendera menunjukkan bahwa beberapa konten bukan musik, apakah itu iklan atau percakapan? Di sini Anda perlu moderasi segera, bukan post factum.

Untuk lebih meningkatkan kualitas, saya mengembangkan versi terbaru Adblock Radio, yang sedikit meningkatkan strategi ini.

5. Kombinasi klasifikasi suara dan pencocokan sidik jari (sukses!)


Algoritma terbaik saya diterbitkan di Github . Untuk meningkatkan keandalan, ia menggabungkan konsep dari dua upaya sebelumnya: klasifikasi akustik dan basis data sidik jari.

Prediktor pembelajaran mesin yang terlatih memberikan klasifikasi yang benar dari sebagian besar bahan sumber, tetapi tidak berfungsi dalam beberapa situasi (lihat bagian tentang peningkatan di masa mendatang di bawah). Peran modul pencocokan sidik jari adalah untuk mengurangi kesalahan modul pembelajaran mesin.

Tidak semua data pelatihan yang diketahui dimasukkan ke dalam basis data sidik jari, tetapi hanya sebagian kecil di mana pembelajaran mesin menunjukkan kesalahan. Saya menyebutnya "basis data hotlist". Ukurannya yang kecil membantu mengurangi tingkat kesalahan keseluruhan sekaligus menjaga beban CPU tetap rendah.

Pada laptop biasa, algoritma hanya mengkonsumsi 5-10% dari CPU pada file dan 10-20% di udara.

Perbaikan di masa depan


Beberapa jenis konten masih bermasalah.


Detektor tidak sempurna bekerja pada beberapa jenis konten audio tertentu:

  • Musik hip-hop sering dikenal sebagai iklan. Anda dapat mengatasi masalah dengan menambahkan trek ke daftar hotlist, tetapi ini terlalu banyak musik. Jaringan saraf yang lebih umum dapat dikembangkan, mungkin dengan mengorbankan kinerja.
  • iklan album musik sering dikenali sebagai musik. Tetapi memblokir melalui sidik jari akan mengarah ke positif palsu ketika lagu yang sebenarnya disiarkan. Masalahnya dapat dipecahkan dengan analisis konteks yang lebih mendalam, tetapi sulit ditayangkan, di mana konteksnya diketahui hanya beberapa detik ke depan.
  • Iklan talk show sering dikenali sebagai percakapan. Ada batas-batas yang kabur, karena itu adalah percakapan dan iklan. Kami melihat batas kemungkinan iklan / percakapan / musik penggolong. Untuk klasifikasi berdasarkan sidik jari, saya menggunakan kelas ad_self untuk beberapa waktu, yang berisi iklan talk show di stasiun tertentu, tetapi dengan pengenalan algoritma pembelajaran mesin, saya berhenti melakukan ini. Mungkin bijaksana untuk membuat ulang kelas ini. Pilihan lain adalah analisis konteks yang lebih baik.
  • iklan asli, di mana tuan rumah membaca teks sponsor. Di radio, ini jarang terjadi, dan lebih sering di podcast. Langkah logis berikutnya untuk memblokir iklan semacam itu adalah pengenalan perangkat lunak pengenalan suara.

Rantai Markov untuk post-processing yang lebih stabil


Stabilitas pasca pemrosesan dapat ditingkatkan. Saat ini, hanya ambang batas kepercayaan yang digunakan. Ketika nilai ambang tercapai, perkiraan percaya diri terakhir diambil. Dengan demikian, sistem terkadang menyimpan kesalahan.

Siklus periklanan, percakapan, dan musik agak siklus pada setiap siaran. Misalnya, iklan biasanya berlangsung beberapa menit. Untuk setiap periode waktu dalam jeda iklan, Anda dapat menghitung probabilitas transisi ke keadaan lain (percakapan atau musik). Peluang ini akan membantu untuk lebih baik menafsirkan prediksi bising dari algoritma: apakah itu hanya segmen pendek dari musik dalam iklan atau apakah jeda iklan selesai? Di sini, model Markov tersembunyi akan menjadi bidang penelitian yang bagus.

Radio Analog Belum Didukung


Sinyal Analog (FM) belum diuji dan saat ini tidak didukung. Kebisingan analog menimpa metode yang digunakan di sini. Filter dan / atau algoritma pengenalan sidik jari tahan noise mungkin diperlukan. Jika ini terjadi, maka program ini dapat menemukan aplikasi yang lebih luas di antara pengguna. Namun, radio semakin bergeser ke teknologi digital bebas noise seperti DAB dan radio Internet.

Tidak disarankan untuk menjalankan Radio Adblock di cloud


Idealnya, Radio Adblock hanya boleh dijalankan di perangkat terminal. Tetapi sekarang layanan cloud sedang populer. Selain itu, ini adalah ide bisnis yang hebat! Adblock Radio menguji dua opsi arsitektur dengan paradigma seperti itu. Namun, pengalaman menunjukkan bahwa ini bukan pilihan terbaik karena alasan teknis dan hukum.

Opsi 1. Relay dari server


Server dapat menyampaikan konten audio dengan tag iklan / bicara / musik ke pendengar. Kami mengujinya pada tahun 2016. Di sini muncul masalah hukum, karena menyiarkan streaming dapat dianggap sebagai palsu dan / atau pelanggaran hak cipta (walaupun saya bukan pengacara). Itu juga tidak skala dengan baik karena Anda sekarang CDN dan harus menanggung biayanya.

Demi bercanda, pada hari Minggu, ketika saya pergi karena alasan keluarga, Adblock Radio sangat populer, dari mana ia jatuh . Fakta menyenangkan: beberapa hari kemudian France Inter , sebuah stasiun radio publik utama Prancis, mengiklankan Adblock Radio di jam tayang utama (tetapi tanpa menyebutkan namanya). Ini adalah keputusan editorial yang tidak terduga dalam konteks fakta bahwa regulator memutuskan pada tahun 2016 untuk melonggarkan pembatasan iklan di stasiun radio milik negara , yang memperburuk pertikaian antara karyawan dan manajemen Radio Prancis .

Beberapa minggu kemudian, saya menerima ancaman dari pengacara jaringan radio swasta Prancis, Les Indés Radio , yang diduga atas dasar pelanggaran hak cipta dan merek dagang. Karena tidak memiliki sumber keuangan untuk perlindungan serius, saya harus menghapus beberapa aliran dari situs, menutup sebagian situs, dan mengubah arsitektur sistem. Pada saat yang sama, jaringan radio ini menolak untuk bekerja sama dalam mencari kompromi. Karena saya melihat di log bahwa mereka terus memantau situs saya (kadang-kadang dengan akun pseudonim), mereka juga berkonsultasi dengan pengacara mereka . Suatu kehormatan bagi saya! Melihat ke belakang, mereka berhasil memenangkan waktu, tetapi tidak lebih. Hai teman-teman dari Indonesia! Semoga Anda menikmati membaca ini! xoxoxo .


Deklarasi cinta dari Les Indés, jaringan 131 stasiun radio Prancis

Opsi 2. Server menyampaikan suara, tetapi secara pribadi


Ini mengasumsikan analisis pada server dan menyampaikan suara yang dibersihkan untuk pengguna tertentu. Sistem seperti itu dapat dibebaskan dari undang-undang hak cipta sebagai salinan pribadinya sendiri dari media. Jika server dikelola oleh pengguna akhir, dan sumber asli legal dan tersedia secara resmi di wilayah Anda, semuanya mungkin bersih secara hukum. Lihat pembahasan Station Ripper [FR] dan VCast [FR] untuk informasi lebih lanjut. Tetapi pengguna jarang tech savvy untuk menyewa dan menginstal server sendiri.

Sangat menggoda untuk menempatkan server di bawah kendali pihak ketiga, tetapi ini mengarah pada masalah hukum, karena dengan demikian operator yang membuat salinan dan pengguna akhir bukan orang yang sama. Dalam hal ini, pembatasan hukum diberlakukan, setidaknya di Perancis. Layanan Internet Prancis Wizzgo [FR] mengalami aturan ini pada 2008. Baru-baru ini, di AS, layanan televisi Aereo ditutup, meskipun mengambil tindakan pencegahan dengan mendistribusikan tuner terpisah (!) Untuk setiap klien .

Saat ini, layanan Molotov.TV [FR] berjuang melawan pemegang hak cipta yang ingin membatasi fungsinya [FR] , meskipun ada pengaruh signifikan dari para pendiri. Pajak salinan pribadi [FR] harus dibayarkan ke organisasi resmi . Jumlahnya ditentukan oleh perhitungan yang agak buram [FR] dan meningkat [FR] setiap tahun, mencapai beberapa puluh euro per pengguna per bulan. Papan ini telah menjadi sangat tinggi sehingga Molotov.TV baru-baru ini menghapus fitur layanannya untuk pengguna gratis [FR] . (Catatan: Saya dengan tulus berterima kasih kepada jurnalis dari situs Prancis NextINpact untuk liputan yang sangat baik tentang topik ini).

Pembayaran tidak cukup: undang-undang mengharuskan entitas seperti Molotov.TV untuk menandatangani perjanjian [FR] dengan perusahaan berhak cipta tentang fungsionalitas layanan mereka. Cobalah untuk mencapai kesepakatan dengan perusahaan radio jika Anda mulai memotong iklan mereka.

Opsi 3. Server hanya mengirim metadata


Pilihan lain adalah bagi pengguna dan server untuk mendengarkan radio Internet yang sama secara bersamaan. Dalam hal ini, server menganalisis suara dan mengirimkan metadata klasifikasi pengguna (iklan / bicara / musik), tetapi bukan konten audio. Sejak 2017, adblockradio.com telah mengerjakan arsitektur ini. Itu bergantung pada CDN, sehingga tidak menimbulkan biaya dalam kaitannya dengan audio siaran.

Arsitektur ini menghilangkan masalah pelanggaran hak cipta (penafian: Saya bukan pengacara). Namun, mungkin masih ada beberapa ketidakpastian tentang undang-undang merek dagang. Baru-baru ini (Oktober 2018), pemilik radio Skyrock menuntut agar konten dihapus atas dasar ini.


Romansa dari Departemen Hukum Skyrock

Selain pertimbangan hukum, ada masalah teknis dengan sinkronisasi yang tepat antara audio dan metadata. Dalam kebanyakan kasus, semuanya berfungsi dengan baik dengan interval sinkronisasi kurang dari dua detik. Tetapi beberapa stasiun radio memiliki CDN aneh / jahat atau mereka secara dinamis menyuntikkan iklan ke dalam aliran. Ini berarti bahwa aliran antara server dan klien yang berbeda dapat sangat bervariasi. Misalnya, di Radio FG , lag diamati hingga 20 detik, dan pada Jazz Radio - hingga 45 detik. Ini mengecewakan para pendengar.

Sinkronisasi dapat diterapkan dengan ketat dengan membandingkan blok data antara server dan pengguna. Sayangnya, ini tidak berfungsi di browser web, karena sebagian besar CDN di stasiun radio Internet tidak menggunakan header CORS . Karenanya, JavaScript di browser tidak akan dapat membaca konten audio untuk perbandingan. Untuk bekerja, Anda perlu modul terpisah yang berdiri sendiri (misalnya, Elektron ), modul Flash (yeah) atau ekstensi web, yang tampaknya sedikit berlebihan.

Anda dapat mengintegrasikan Radio Adblock ke dalam pemutar Anda


Proyek ini bukan untuk pengguna akhir, tetapi untuk perusahaan yang merilis produk massal. Anda bisa melakukannya!

Pengembang memiliki dua opsi untuk mengintegrasikan Radio Adblock. Pertama, SDK hanya mengambil metadata dari server adblockradio.com. Ini bukan solusi ideal untuk alasan yang dijelaskan di atas (masalah hukum dan sinkronisasi). Lebih baik menjalankan algoritma analisis lengkap.

Perangkat lunak


  • Aplikasi seluler untuk radio dan podcast Internet. Model Keras perlu dikonversi ke Tensorflow asli, dan perpustakaan Keras + Tensorflow dapat diganti dengan Tensorflow Lite untuk Android dan iOS . Rutin Node.JS diimplementasikan menggunakan plugin React Native atau, dalam kasus ekstrim, dengan Termux .
  • ekstensi browser berfungsi dengan Tensorflow JS dan SQL.js. Ekstensi ini dapat mengontrol penggeser volume di direktori radio Internet populer, seperti TuneIn atau Radio.de . Saya sudah bekerja pada ekstensi semacam itu. Itu menyenangkan mengaduk-aduk pemain JavaScript untuk mendapatkan kontrol ini. Bergantung pada implementasinya, ingatlah masalah sinkronisasi yang telah kita diskusikan di atas.

Perangkat keras


  • alarm digital dan proyek amatir, tergantung pada ketersediaan daya komputasi dan akses jaringan yang memadai. Platform seperti Raspberry Pi Zero / A / B harus cukup untuk menganalisis aliran tunggal, meskipun RPi 3B / 3B + direkomendasikan untuk kontrol paralel beberapa aliran. Tensorflow ada di Raspbian .
  • speaker yang terhubung seperti Sonos . Algoritme itu sendiri tidak akan berfungsi pada peralatan tersebut, jadi Anda perlu memproses data baik di cloud atau di perangkat terpisah di jaringan lokal yang sama (misalnya, di Raspberry). Ide bagus untuk kampanye crowdfunding.

Adblock Radio di dalam mobil


Mobil adalah salah satu tempat paling populer untuk mendengarkan radio. Di sana, orang benar-benar membutuhkan pemblokir iklan. Tapi ini juga konteks di mana menerapkan Adblock Radio tidak mudah. Bagaimanapun, sistem harus menerima umpan balik untuk memfilter iklan baru secara efektif, sehingga program ini membutuhkan koneksi jaringan. Saya melihat tiga konsep yang mungkin untuk produk otomotif dengan Adblock Radio.

  • Aplikasi yang kompatibel dengan sistem infotainment mobil modern . Mungkin cara termudah untuk mengirimkan data adalah melalui ponsel cerdas pengguna. Ponsel cerdas juga dapat digunakan secara terpisah - dengan aplikasi seluler, streaming radio Internet, melalui output audio, menghubungkan ke AUX atau Bluetooth mobil. Itu juga dapat diintegrasikan dengan sistem infotainment mobil, dalam semangat Apple Car Play , Android Auto dan MirrorLink . Akan luar biasa mendengarkan radio terestrial (FM, DAB). Tetapi pekerjaan diperlukan untuk menentukan di mana konfigurasi tertentu Adblock Radio dapat mengakses output audio dari radio tuner dan, pada saat yang sama, mengendalikannya (volume, saluran).
  • Adaptor perangkat keras universal, antarmuka pengguna khusus . Dimungkinkan juga untuk mengembangkan peralatan khusus yang mirip dengan adaptor DAB yang ada untuk mobil . Perangkat ini mendengarkan stasiun radio dan mengirimkan data audio ke sistem mobil melalui jack AUX atau melalui saluran FM yang tidak digunakan, seperti adaptor iPod FM lama . Akses ke jaringan dapat melalui smartphone melalui Bluetooth. Solusi alternatif, seperti Sigfox dan LoRa , dapat dipertimbangkan jika bitrate dan harga sesuai. Antarmuka pengguna khusus harus dikembangkan, terpisah dari perangkat mobil utama. Pada akhirnya, ini mungkin menjadi terlalu mahal.
  • Perangkat minimalis yang menerobos masuk ke penerima FM . Perangkat sekecil itu dapat mengontrol tuner jika perlu. Perlu antarmuka standar, tetapi mudah untuk dihubungkan. Sakelar kemudi adalah kandidat yang baik, tetapi pengguna akhir tidak dapat dengan mudah memodifikasinya untuk tujuan ini. Jadi, Anda perlu meretas sistem.

    Perangkat tanpa kepala ini akan memiliki tuner FM dan mikrofon untuk menganalisis stasiun mana yang didengarkan pengguna (korelasi silang). Ketika sebuah iklan terdeteksi, perangkat memancarkan data RDS palsu (seperti pengumuman lalu lintas ) untuk mengelabui tuner mobil dan mengubah stasiun selama durasi iklan.Itu juga dapat menyiarkan keheningan pada frekuensi FM saat ini.

    Antarmuka perangkat semacam itu sangat sederhana, hanya dengan beberapa tombol. Jadi lebih murah daripada adaptor mobil berfitur lengkap. Namun, tidak jelas apakah ini akan bekerja dengan baik, karena tanpa lisensi penggunaan pemancar radio sangat dibatasi oleh hukum . Akhirnya, tidak diketahui apakah strategi seperti itu dapat diadaptasi untuk bekerja dengan aliran digital DAB.

Jika mungkin untuk mengembangkan perangkat yang murah, maka produk seperti itu harus memiliki kesuksesan komersial. Ini juga cocok untuk crowdfunding.

Proyek ini membutuhkan sinyal tentang tanggapan dan bantuan yang salah dalam pemrosesan mereka.


Saat mengintegrasikan Radio Adblock ke dalam produk, silakan tinggalkan kesempatan untuk umpan balik. Kerusakan harus segera dilaporkan kepada saya sehingga saya dapat memperbarui model pembelajaran mesin dan basis hotlist.

Laporan dilihat secara manual: cukup tentukan nama stasiun radio dan waktu ketika masalah muncul. perpustakaan didirikan mekanisme pelaporan untuk pengiriman.

Pemrosesan laporan membutuhkan waktu. Selain biaya server, ini adalah alasan lain mengapa saya belum menambahkan lebih banyak stasiun radio ke adblockradio.com. Perlu bantuan untuk mendengarkan trek audio dan mengklasifikasikan konten di antarmuka web admin. Berkat ini, kami dapat menambah jumlah stasiun radio dan memberikan dukungan untuk podcast. Jika Anda bersedia membantu, silakanDaftar di sini dan ikuti repositori tempat diskusi utas yang didukung akan berlangsung.

Bagaimana cara mengganti iklan: pertanyaan UX


Melewati iklan di podcast itu sepele: dari sudut pandang pendengar, itu seperti melewatkan bagian dari sebuah lagu. Sayangnya, ini tidak berfungsi untuk radio. Kami tidak dapat memajukan secara langsung!

Adblockradio.com sekarang menawarkan tiga opsi pemfilteran:

  • volume turun
  • beralih ke stasiun lain dan kembali lagi di akhir iklan. Ini benar jika pengguna mendengarkan percakapan. Selama beriklan, ia sementara beralih ke stasiun musik.
  • pindah permanen ke stasiun lain. Berguna saat mendengarkan stasiun musik.

Saya mencoba yang terbaik untuk membuatnya senyaman mungkin, tetapi sistemnya masih rumit. Tidak sesederhana radio atau pemblokir iklan biasa di komputer yang bisa Anda pasang dan lupakan . Saya benar-benar mengandalkan bantuan pikiran kolektif.


Saat antarmuka web Adblock Radio


prototipe sebelumnya, yang tidak pernah dirilis. Di sini pengguna memiliki kebebasan pengaturan yang sepenuhnya lengkap. Hanya siaran percakapan dari satu stasiun, hanya musik dari stasiun lain, dll. Tetapi para penguji sangat bingung! Menoleh ke belakang, bahkan bagi saya antarmuka ini sulit untuk dipahami.

Tampaknya menarik bagi saya cara lain untuk mendengarkan konten. Saya tidak bisa menjualnya di adblockradio.com karena alasan hukum yang disebutkan di atas. Sebagai gantinya, saya membuat pemutar desktop yang berdiri sendiri (juga tersedia di Github ), dalam semangat perekam video digital . Pengguna mulai mendengarkan dengan pergeseran waktu sekitar 10 menit (misalnya, pada jam 7.30 pagi mereka mulai mendengarkan siaran audio mulai jam 7.20). Pada setiap jeda iklan, fast forward terjadi - dan Anda dapat menikmati program Anda tanpa gangguan. Dengan jumlah iklan yang khas, giliran kerja sepuluh menit memungkinkan Anda mendengarkan radio tanpa gangguan selama satu atau dua jam. Dalam hal aplikasi seluler, ini sudah cukup untuk mulai bekerja.

Ketika pengguna menyalakan perangkat, ia harus mengirimkan siaran sepuluh menit yang lalu. Bagaimana melakukan ini dalam konteks mobilitas, dengan pembatasan jumlah energi dan data? Harap dicatat bahwa undang-undang melarang pihak ketiga yang tidak berlisensi (di cloud) menyiarkan rekaman radio.


Prototipe kerja pemutar radio shift waktu. Blok audio dikelompokkan berdasarkan segmen. Musiknya biru, percakapannya hijau, dan iklannya merah. Ketika kursor merah muda mencapai zona merah (iklan), kursor itu dilewati

Dalam jangka panjang, sistem dapat menerima konten siaran dari semua stasiun - dan sepenuhnya menyesuaikannya sesuai dengan selera setiap pendengar. Siarkan acara favorit Anda, musik sesuai selera Anda, masukkan podcast, dll. Menurut pendapat saya, konten langsung yang sulit ditunda dan diunggah nanti: acara olahraga, berita, prakiraan cuaca, musik langsung dan dll. Mungkin ini akan menjadi model bisnis alternatif untuk radio .

Kesimpulan


Solusi teknis untuk memblokir iklan di radio dan podcast ternyata lebih rumit daripada yang kita inginkan. Model perlu diperbarui secara berkala dengan video baru. Ini berarti bahwa sistem tersebut harus digunakan dalam perangkat yang terhubung ke Internet, seperti smartphone dan WiFi-radio. Layanan ini belum cocok untuk radio konvensional yang berdiri sendiri (FM, DAB +). Untungnya, dengan keberadaan komunikasi seluler di mana-mana, orang mengubah kebiasaan mereka, sehingga memblokir iklan harus lebih mudah di masa mendatang.

Anda dapat membantu mengembangkan Adblock Radio.

  • Sebagai pendengar radio: nyalakan pemutar , dengarkan radio dan perhatikan kesalahan pengenalan sehingga algoritme dapat dipelajari. Tidak punya stasiun favorit Anda? Tidak masalah, pergi ke sini dan tinggalkan permintaan.
  • Sebagai pengembang: buka repositori , jalankan demo, Anda dapat bergabung dengan diskusi. Lihat demo lain dari pemutar desktop di Electron.
  • Sebagai manajer produk: hubungi kami jika Anda ingin mengintegrasikan Adblock Radio ke dalam produk Anda. Saya akan dengan senang hati membantu.

Di masa depan, iklan audio hanya akan tersimpan di memori yang jauh! Terima kasih sudah membaca.

Source: https://habr.com/ru/post/id435720/


All Articles