雑品


テキストビューワー
operaはソースの表示にxeditを使っているが文字コードを変換してくれな
くて文字化けしてしまう。emacsは重い。そのためソース表示のために
ruby/gtkで作ったシンプルなテキストビューワー。

音声合成プログラム
ATRの単語発話データベースの2つ音声を合成して1つのデータにするプログ ラム
というかshort(16bit)型のバイナリ形式の音声でヘッダーがついてなければ何でもできると思う。

opera->skipstoneブックマーク変換
opera6.adrのブックマークファイルからskipstoneのブックマークに変換する プログラム

opera->firefox,mozillaブックマーク変換
opera6.adrのブックマークファイルからmozilla,firefoxのブックマークに変換する プログラム

ランダム人決めプログラム
引数の人からランダムに一人選ぶ。
使用例:織田君と斎藤君と武田君からゴミ当番を決めたい場合。
# ruby kime.rb 織田 斎藤 武田
# 織田 ← 織田君が選ばれました。

ランダム人決めプログラム(重み付け)
引数の人から重み付けしてランダムに一人選ぶ。
重みは整数で決定し、名称の後ろに半角コンマ「,」を付けて重みを付ける。

使用例1:織田君と斎藤君と武田君からゴミ当番を決めたくて、
織田君だけ他の人の5倍の確率で選びたい場合。
何も入力しないと重みは1
# ruby kime.rb 織田,5 斎藤 武田
# 織田 ← 織田君が選ばれました。

使用例2:織田君と斎藤君と武田君からゴミ当番を決めたくて、
織田君だけ他の人の1.5倍の確率で選びたい場合。
# ruby kime.rb 織田,15 斎藤,10 武田,10
# 織田 ← 織田君が選ばれました。

rubyの配列クラスに要素から任意の数を取り出した組合せ (順番関係なし)を返す機能(comb)
とすべての組合せを返す機能(pattern)
要素から任意の数を取り出した組合せ (順番関係あり)を返す機能(pat)を追加

arr = ["1","2","3"]
p arr.comb(2) #=> [["1", "2"], ["1", "3"], ["2", "3"]]
p arr.pattern #=> [["1"], ["2"], ["3"], ["1", "2"], ["1", "3"],["2", "3"], ["1", "2", "3"]]
p.arr.pat(2) #=> [["1", "2"], ["1", "3"], ["2", "1"], ["2", "3"], ["3", "1"], ["3", "2"]]

音声ファイル(ヘッダ無しのshort型バイナリ)からフーリエスペクトルを求めるプログラム
窓関数にはハミング窓をかけて、フーリエ変換してから求めている。
使いかたは
./a.out offset length srate < singnalfile
offset : 出力開始サンプル位置(整数 >= 0)
length : 出力するサンプル数(整数 > 0)
srate : 信号ファイルの標本化周波数 (単位: Hz) ただしこのプログラムでは未使用。