静岡県で開催、小中高校生対象「
ジュニアプロコン 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 静岡