Teknologi Pemrosesan
Suara adalah tipe data yang padat informasi. Meskipun mungkin terasa kuno di era konten video, audio tetap menjadi sumber informasi utama bagi banyak orang. Meskipun terjadi penurunan jumlah pendengar dalam jangka panjang, 83% orang Amerika berusia 12 tahun ke atas mendengarkan radio terestrial (AM/FM) pada minggu tertentu di tahun 2020 (turun dari 89% di tahun 2019). Sebaliknya, audio online telah mengalami peningkatan pendengar yang stabil selama dua dekade terakhir, dengan 62% orang Amerika dilaporkan mendengarkan beberapa bentuk audio online setiap minggunya menurut studi Pew Research Center yang sama.
Sebagai sebuah gelombang, suara memiliki empat sifat: frekuensi, amplitudo, bentuk gelombang, dan durasi. Dalam terminologi musik, ini disebut pitch, dinamika, nada, dan durasi. Suara juga membantu manusia dan hewan lain untuk melihat dan memahami lingkungan kita, memberikan petunjuk konteks untuk lokasi dan pergerakan objek di sekitar kita.
Sebagai pembawa informasi, audio dapat diklasifikasikan ke dalam tiga kategori:
- Ucapan: Media komunikasi yang terdiri dari kata-kata dan tata bahasa. Dengan algoritme pengenalan suara, ucapan dapat diubah menjadi teks.
- Musik: Suara vokal dan/atau instrumental yang digabungkan untuk menghasilkan komposisi yang terdiri dari melodi, harmoni, ritme, dan warna suara. Musik dapat diwakili oleh sebuah notasi.
- Bentuk gelombang: Sinyal audio digital yang diperoleh dengan mendigitalkan suara analog. Bentuk gelombang dapat merepresentasikan ucapan, musik, dan suara alami atau suara yang disintesis.
Pengambilan audio dapat digunakan untuk mencari dan memantau media online secara real-time untuk menindak pelanggaran hak kekayaan intelektual. Hal ini juga mengasumsikan peran penting dalam klasifikasi dan analisis statistik data audio.
Teknologi Pemrosesan
Pidato, musik, dan suara umum lainnya masing-masing memiliki karakteristik yang unik dan membutuhkan metode pemrosesan yang berbeda. Biasanya, audio dipisahkan menjadi kelompok yang berisi ucapan dan kelompok yang tidak:
- Audio ucapan diproses dengan pengenalan ucapan otomatis.
- Audio non-ucapan, termasuk audio musik, efek suara, dan sinyal ucapan yang didigitalkan, diproses dengan menggunakan sistem pengambilan audio.
Artikel ini berfokus pada cara menggunakan sistem pengambilan audio untuk memproses data audio non-ucapan. Pengenalan ucapan tidak tercakup dalam artikel ini
Ekstraksi fitur audio
Ekstraksi fitur adalah teknologi yang paling penting dalam sistem pengambilan audio karena memungkinkan pencarian kemiripan audio. Metode untuk mengekstraksi fitur audio dibagi menjadi dua kategori:
- Model ekstraksi fitur audio tradisional seperti model campuran Gaussian (GMM) dan model Markov tersembunyi (HMM);
- Model ekstraksi fitur audio berbasis pembelajaran mendalam seperti jaringan saraf berulang (RNN), jaringan memori jangka pendek (LSTM), kerangka kerja penyandian-pengodean, mekanisme perhatian, dll.
Model berbasis deep learning memiliki tingkat kesalahan yang jauh lebih rendah daripada model tradisional, dan oleh karena itu, model ini mendapatkan momentum sebagai teknologi inti dalam bidang pemrosesan sinyal audio.
Data audio biasanya diwakili oleh fitur audio yang diekstraksi. Proses pencarian kembali mencari dan membandingkan fitur dan atribut ini, bukan data audio itu sendiri. Oleh karena itu, efektivitas pencarian kemiripan audio sangat bergantung pada kualitas ekstraksi fitur.
Dalam artikel ini, jaringan saraf tiruan audio yang telah dilatih sebelumnya dalam skala besar untuk pengenalan pola audio (PANN ) digunakan untuk mengekstrak vektor fitur untuk akurasi rata-rata rata-rata (mAP) sebesar 0,439 (Hershey et al., 2017).
Setelah mengekstraksi vektor fitur dari data audio, kita dapat mengimplementasikan analisis vektor fitur berkinerja tinggi menggunakan Milvus.
Pencarian kesamaan vektor
Milvus adalah basis data vektor open-source yang berasal dari cloud yang dibangun untuk mengelola vektor penyisipan yang dihasilkan oleh model pembelajaran mesin dan jaringan saraf. Milvus banyak digunakan dalam skenario seperti visi komputer, pemrosesan bahasa alami, kimia komputasi, sistem pemberi rekomendasi yang dipersonalisasi, dan banyak lagi.
Diagram berikut ini menggambarkan proses pencarian kemiripan secara umum menggunakan Milvus: how-does-milvus-work.png
- Data yang tidak terstruktur diubah menjadi vektor fitur dengan model pembelajaran mendalam dan dimasukkan ke dalam Milvus.
- Milvus menyimpan dan mengindeks vektor fitur ini.
- Berdasarkan permintaan, Milvus mencari dan mengembalikan vektor yang paling mirip dengan vektor kueri.
Gambaran umum sistem
Sistem temu kembali audio pada dasarnya terdiri dari dua bagian: memasukkan (garis hitam) dan mencari (garis merah).
sistem-pengambilan audio.png
Contoh dataset yang digunakan dalam proyek ini berisi suara game sumber terbuka, dan kodenya dirinci dalam bootcamp Milvus.
Langkah 1: Memasukkan data
Di bawah ini adalah contoh kode untuk menghasilkan penyematan audio dengan model inferensi PANN yang telah dilatih sebelumnya dan memasukkannya ke dalam Milvus, yang memberikan ID unik untuk setiap penyematan vektor.
1 wav_name, vectors_audio = get_audio_embedding(audio_path)  
2 if vectors_audio:  
3     embeddings.append(vectors_audio)  
4     wav_names.append(wav_name)  
5 ids_milvus = insert_vectors(milvus_client, table_name, embeddings) 
6
Kemudian ids_milvus yang dikembalikan disimpan bersama dengan informasi lain yang relevan (misalnya nama_wav) untuk data audio yang disimpan di database MySQL untuk pemrosesan selanjutnya.
1 get_ids_correlation(ids_milvus, wav_name)  
2 load_data_to_mysql(conn, cursor, table_name)  
3
Langkah 2: Pencarian audio
Milvus menghitung jarak inner product antara vektor fitur yang telah disimpan sebelumnya dan vektor fitur input, diekstraksi dari data audio kueri menggunakan model inferensi PANN, dan mengembalikan ids_milvus dari vektor fitur yang serupa, yang sesuai dengan data audio yang dicari.
1 _, vectors_audio = get_audio_embedding(audio_filename)  
2 results = search_vectors(milvus_client, table_name, [vectors_audio], METRIC_TYPE, TOP_K)  
3 ids_milvus = [x.id for x in results[0]]  
4 audio_name = search_by_milvus_ids(conn, cursor, ids_milvus, table_name)  
5
Referensi dan demo API
API
Sistem pengambilan audio ini dibangun dengan kode sumber terbuka. Fitur utamanya adalah penyisipan dan penghapusan data audio. Semua API dapat dilihat dengan mengetik 127.0.0.1:
Demo
Kami menyelenggarakan demo langsung dari sistem pencarian audio berbasis Milvus secara online yang dapat Anda coba dengan data audio Anda sendiri.
audio-search-demo.png
Kesimpulan
Hidup di era data besar, orang-orang menemukan hidup mereka dipenuhi dengan segala macam informasi. Untuk memahaminya dengan lebih baik, pencarian teks tradisional tidak lagi memadai. Teknologi pencarian informasi saat ini sangat membutuhkan pengambilan berbagai jenis data yang tidak terstruktur, seperti video, gambar, dan audio.
Data yang tidak terstruktur, yang sulit diproses oleh komputer, dapat diubah menjadi vektor fitur menggunakan model pembelajaran mendalam. Data yang dikonversi ini dapat dengan mudah diproses oleh mesin, sehingga memungkinkan kita untuk menganalisis data yang tidak terstruktur dengan cara yang tidak dapat dilakukan oleh para pendahulu kita. Milvus, sebuah basis data vektor sumber terbuka, dapat secara efisien memproses vektor fitur yang diekstraksi oleh model AI dan menyediakan berbagai perhitungan kesamaan vektor yang umum.
Referensi
Hershey, S., Chaudhuri, S., Ellis, D.P., Gemmeke, J.F., Jansen, A., Moore, R.C., Plakal, M., Platt, D., Saurous, R.A., Seybold, B. dan Slaney, M., 2017, March. Arsitektur CNN untuk klasifikasi audio skala besar. Dalam Konferensi Internasional IEEE 2017 tentang Akustik, Pidato dan Pemrosesan Sinyal (ICASSP), hal. 131-135, 2017
Jangan menjadi orang asing
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word