Terinspirasi oleh pertanyaan ini dari electronics.SE , inilah tantangan untuk Anda:
Tulis program atau subrutin yang menggunakan urutan angka desimal (0 hingga 9) dan ucapkan dengan keras, tanpa menggunakan alat sintesis bicara yang ada.
Memasukkan:
Anda dapat meminta digit input disediakan dalam format apa pun yang masuk akal, misalnya sebagai string digit ASCII, array bilangan bulat, angka berkode BCD, dll. Jika solusi Anda adalah program yang dapat dieksekusi, Anda dapat mengambil input tersebut sebagai parameter baris perintah, membacanya dari input standar, atau mendapatkannya dengan cara lain yang masuk akal.
Program Anda harus dapat berbicara setidaknya delapan digit per doa. Anda dapat mengasumsikan bahwa digit pertama bukan nol, kecuali itu satu-satunya digit.
Keluaran:
Program Anda dapat berbicara angka-angka secara langsung menggunakan perangkat audio, atau dapat menghasilkan file suara yang dapat diputar. File output, jika ada, mungkin dalam format audio standar apa pun, atau mungkin terdiri dari data sampel mentah. Jika Anda menampilkan data sampel mentah, harap perhatikan parameter yang sesuai untuk pemutaran (laju sampel, bit per sampel, endianness, bertanda / tidak ditandai, # saluran). Format yang didukung oleh aplay lebih disukai.
Anda bebas untuk memutuskan rincian tentang bagaimana angka-angka akan diucapkan, tetapi output Anda harus terdiri dari angka bahasa Inggris yang diucapkan dengan cara yang dapat dimengerti oleh penutur bahasa Inggris yang khas , dan itu harus cukup jelas bagi pendengar untuk dapat secara akurat menyalin nomor acak delapan digit yang diucapkan. Tidak, hanya berbunyi n kali dan tidak masuk hitungan. Jangan lupa untuk memasukkan jeda di antara digit.
Mencetak:
Aturan penilaian kode-golf standar berlaku: Skor Anda adalah panjang kode Anda dalam byte atau, jika kode Anda ditulis dalam teks Unicode, dalam karakter Unicode. Skor terendah menang. Bahasa apa saja.
Karena pertanyaan awal tentang elektronik. SE adalah tentang pemrograman tertanam, saya merasa akan lebih tepat untuk melemparkan tulang ke penulis menggunakan bahasa tingkat rendah: jika solusi Anda ditulis dalam bahasa yang dikompilasi, Anda dapat memilih untuk menghitung panjang mengkompilasi file yang dapat dieksekusi dalam byte sebagai skor Anda. (Ya, bytecode yang dikompilasi, seperti .class
file Java , juga OK.) Jika Anda memilih untuk menggunakan opsi ini, harap sertakan salinan dari executable yang dikompilasi dalam jawaban Anda (misalnya sebagai dump hex) bersama dengan kode sumber Anda dan versi kompiler dan opsi yang Anda gunakan untuk menghasilkannya.
Sebuah menyebutkan terhormat , bersama dengan karunia 50 rep, akan diberikan kepada jawaban pertama yang juga memenuhi kriteria dari pertanyaan awal , yaitu mampu berjalan pada MCU tertanam dengan 4 kb flash dan 1 kb dari SRAM.
Pembatasan:
Anda tidak boleh menggunakan file atau sumber daya jaringan apa pun yang bukan bagian dari lingkungan runtime standar bahasa yang Anda pilih, kecuali jika Anda menghitung panjang file atau sumber daya yang disebutkan sebagai bagian dari skor Anda. (Ini untuk melarang mis. Memuat sampel audio dari web.)
Anda juga tidak boleh menggunakan alat sintesis pidato atau pustaka atau kompilasi data audio yang sudah ada sebelumnya (kecuali Anda juga menghitung ukurannya sebagai bagian dari skor Anda), bahkan jika mereka termasuk dalam lingkungan runtime standar bahasa yang Anda pilih.