2022-12-05
静岡県で開催、小中高校生対象「ジュニアプロコン in 静岡」最終審査会にて、神戸高専出身のYouTuber、ラムダ技術部さんによる体験型ITリテラシー講座。高専生の活躍うれしいですね!


しょうもないもの作りたくなりました!
確かに、こんなのつくってもなーっと考える必要は全くなし。自分なりに作れば改造も自由。意外としょうもなくなかったりするのも楽しみのひとつ。


「【質問コーナー】ありのままお答えしました(時給計算, 彼女, 笑顔, …) - YouTube」

ラムダ技術部さんの質問コーナー動画で発見、羊を数える音声データ。ライセンスはクリエイティブ・コモンズとのこと。


Macのオープンソース、BlackHoleで、羊を数えている声を録音して、ウェブ上の音声編集ツール「audiomass」を使って切り分けました。


「codeforkosen/lambcounter」

mp3 音声ファイルとして切り出したもの、Code for KOSEN のGitHubに置きました。


「lambcounter」
src on GitHub
この音声ファイルを使って作った羊カウンターです。

JavaScriptによるwebアプリで作っています。下記のコードでまずはテスト。 // initilize const audiosrc = []; for (let i = 1; i <= 10; i++) { audiosrc.push(i.toString()); } ["100", "1000", "10000", "hiki", "biki", "piki", "hitsujiga"].forEach(s => audiosrc.push(s)); const audios = {}; for (const a of audiosrc) { const audio = new Audio(); audio.src = `audio/${a}.mp3`; audios[a] = audio; } await Promise.all(Object.values(audios)); btn.disabled = false; // util const sleep = (msec) => new Promise(resolve => setTimeout(resolve, msec)); const cutms = 60; // 60msec const playSync = async (s) => { const a = audios[s.toString()]; a.play(); await sleep(a.duration * 1000 - cutms); }; // main btn.onclick = async () => { await playSync("hitsujiga"); await playSync("1"); await playSync("piki"); }; ひき、びき、ぴきの使い分けをプログラムしましょう。 const hbp = ["hiki", "biki", "piki"]; const hbpiki = [-1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 2]; export const playCountLamb = async (n) => { await playSync("hitsujiga"); if (n > 99999 || n < 1) { throw new Error("out of bounds! must be 1 - 99999"); } let last = 0; for (let i = 10000; i >= 10; i /= 10) { if (n >= i) { const m = Math.floor(n / i % 10); if (m > 0) { if (m > 1 || i == 10000) { await playSync(m); } await playSync(i); last = i; } } } const m = n % 10; if (m == 0) { await playSync(last == 10 ? "piki" : last == 100 ? "hiki" : "biki"); } else { await playSync(m); await playSync(hbp[hbpiki[m]]) } }; 1匹から99999匹まで対応しています。聞いていたら違和感あった、300匹。自然に数を発声させるには「びゃく」「ぴゃく」「ぜん」などの音声も必要ですね。日本語、なかんなか奥が深い。(びゃく、ぴゃくは、びき、ぴきから加工すれば作れそうあるとうれしい音声とIssuseに追加)


「lambcounter on ES-Jam」

ES-Jam上でも羊を自由にカウントできるようにモジュールでまとめてみました。ラムダ技術部さんの羊カウント音声で「しょうもないもの」つくりましょう!

links
- ラムダ技術部
- ジュニアプロコン in 静岡

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS