Buat suara

Lima tahun yang lalu, sebuah artikel "Mencetak dan mereproduksi suara di atas kertas" diterbitkan di Habré - tentang sistem untuk membuat dan memainkan spektogram . Kemudian, satu setengah tahun yang lalu, Meklon menerbitkan sebuah pencarian di mana spektogram logaritmik hitam putih menjadi salah satu tahapan. Menurut niat penulis, perlu untuk mencetaknya pada printer, memindai dengan smartphone dengan aplikasi pemain, dan menggunakan kata sandi "didiktekan" dengan cara ini.


Pada saat itu, saya tidak memiliki jangkauan untuk printer atau smartphone, jadi saya tertarik pada dua aspek tugas:

  1. Apa cara termudah untuk memecahkan kode spektrogram tanpa perangkat tambahan dan tanpa perangkat lunak tambahan - lebih disukai, tepat di browser?
  2. Apakah mungkin untuk mendekripsi tanpa perangkat lunak sama sekali - “dengan mata”?

(Bagi mereka yang melihat spektogram untuk pertama kalinya, ada baiknya untuk menjelaskan bahwa ini adalah grafik di mana waktu reproduksi berada pada sumbu horizontal, frekuensi suara pada sumbu vertikal (itu adalah logaritmik), dan tingkat kegelapan titik menunjukkan kekuatan frekuensi ini pada waktu tertentu.)

Saya tidak menemukan skrip yang siap pakai untuk mereproduksi spektrogram, meskipun contohnya mudah ditemukan untuk konversi terbalik - sound to spectrogram - karena fakta bahwa fungsi AnalyserNode.getByteFrequencyData() dibangun ke dalam API Audio Web. Tetapi untuk mengonversi larik frekuensi ke larik PCM untuk diputar, Anda tidak dapat melakukannya tanpa menerapkan invers Fourier transform (DFT) dalam skrip.
* Pada contoh pertama, sebagai rekaman audio untuk analisis spektral, sebuah fragmen trek "  DeltaMi1= alpha sumn=1NDi[n] kiri[ sumj dalamC[i]Fji[n1]+F exti[n1] kanan]"dari Aphex Twin: sebagai pesan rahasia, musisi menyematkan selfie pada trek ini, yang muncul pada spektogram logaritmik. Sayangnya, dalam contoh ini spektogram ditampilkan secara linear, sehingga wajah direntangkan di bagian atas dan dikompresi di bagian bawah.
Mengenai penerapan DFT, segera jelas bahwa "penjebak" dalam JavaScript murni akan bekerja perlahan dan sedih; untungnya, saya menemukan port siap pakai dari perpustakaan FFTW ("Transformasi Fourier Tercepat di Barat") di asm.js adalah bentuk representasi dari kode level rendah, biasanya ditulis dalam C, yang dijanjikan oleh browser modern untuk dijalankan pada kecepatan yang hampir seperti dikompilasi menjadi kode mesin. Ikatan untuk FFTW, yang mengubah gambar hitam dan putih menjadi file WAV, saya ambil dari ARSS dan secara pribadi menulis ulang dalam JavaScript. ARSS menerima gambar terbalik dibandingkan dengan PhonoPaper, dan saya tidak mengubahnya.

Hasilnya bisa Anda kagumi di tyomitch.imtqy.com/#meklon.png

Di bagian bawah, garis-garis horizontal berulang terlihat- forman , dengan posisi yang diakui vokal. Di atas ada "semburan" vertikal yang sesuai dengan konsonan bising : lebih luas - slotted (frikatif), lebih sempit - vokal. Sedangkan untuk konsonan nyaring ([r] dan [l]), "awan" di frekuensi tengah sesuai.



Untuk bermain dengan spektrogram, saya melampirkan gambar primitif, hampir seluruhnya disalin dari tutorial menggambar kanvas. Tombol "Copy" memungkinkan Anda untuk mentransfer gambar ke saluran merah (itu diabaikan oleh synthesizer) dan mencoba untuk "lingkaran" suara.

Wikipedia menulis: "Dipercayai bahwa alokasi empat lelaki cukup untuk mencirikan suara-suara ucapan . " Kami melingkari forman F 2 -F 4 (untuk beberapa alasan F 1 diabaikan oleh synthesizer), dan pastikan bahwa vokal diakui sepenuhnya:



Kemudian kita melingkari konsonan-konsonan yang berisik: huruf [h] adalah [t], dengan lancar berubah menjadi [w]; dan disuarakan [d] dari tuli [t] dibedakan oleh kehadiran forman frekuensi menengah. Sekarang Anda dapat membedakan antara angka "enam" dan "de'it":



Kami menambahkan konsonan nyaring abu-abu tua: pada saat yang sama, kami mencatat bahwa [p] sedikit "meningkatkan" forman vokal, dan [l] - sebaliknya, menghilangkannya.



Hanya konsonan labial [b] dan [c] tetap disalahpahami, tetapi bahkan tanpa mereka kata sandinya lebih atau kurang jelas .

Apakah mungkin untuk menggambar suara dari awal tanpa melacak spektogram dari rekaman audio? Terus terang, saya tidak berhasil. Mungkin Anda ingin mencobanya sendiri?

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


All Articles