Hatena::ブログ(Diary)

盆栽日記

2014-12-16

ふだんRでやってることをJuliaでやる

Julia Advent Calendar 2014 16日目

私は普段Rを使っています。

で、Rで普段やっていることをJuliaでもやりたいと思うわけです。

普段やっていることっていうのはこういうことです。

有意差でたよっ

ということで上記をJuliaで実現すべく調べたことをまとめておきます。

音を鳴らすパッケージは今回WAVを使った

waveファイルを扱いたい場合、WAVAudioIOという2つのパッケージがあります。

なぜ2つもあるのかという経緯についてはWAV.jlのREADME(下記)にあります。

AudioIO is another audio library in the Julia ecosystem. It supports more file formats (including WAV) and implements a more powerful playback interface. However, the license is more restrictive (GPL) because of a dependence on libsndfile.

AudioIO.jlは使っているライブラリの都合上、ライセンスがGPLになっているため、もっと制限の少ないMITライセンスで開発するためにWAV.jlを開発したとのことです。

今回はWAVパッケージを使いました。

どちらでも良かったのですがAudioIOはJuliaのバージョンの都合でビルドエラーが出たためあきらめました。

ということでまずはWAVパッケージをインストールします。

Pkg.add("WAV")

WAVで音を鳴らす

今回再生したい音源は以下です。

http://koebu.com/koe/0bc35adf6ed5a704f94541271a3e724f49ad4405

どうにかしてダウンロードしてwaveファイルに変換したものを用意します。

wavreadで読み込んでwavplayで再生できます。

using WAV
♪,★= wavread("zoi.wav")
wavplay(,)

なお、emojiはCurrent releaseのv0.3.3では使えません。

Nightly buildsの方で動作を確認しています。

↓以下参照のこと。

http://bicycle1885.hatenablog.com/entry/2014/12/05/011256

emojiのcode pointは下記で確認できます。

http://julia.readthedocs.org/en/latest/manual/unicode-input/

使い方は簡単で、code pointを入力してtabキーで変換できます。

例えば♪でしたら、\eighthnoteと入れてtabキーです。

Rにおける.RprofileはJuliaだと.juliarc.jl

あとは上記コードをjulia起動時に読み込まれる設定ファイルに書いておけば、起動時に常にがんばるぞいできるわけです。

Rだと該当ファイルは.Rprofileですが、juliaの場合はjuliarc.jlです(@bicycle1885さん教えていただきありがとうございました!)。

上記コードを.juliarc.jlに書いてホームディレクトリに置いておけば設定完了です。

いちおう他の話も

データ入出力等についてRとJuliaを対比させた話は以前まとめたので以下に貼付けておきます。

なお、上記資料で触れていない機械学習のライブラリ等は一昨日の@sfchaosさんの記事にまとまっているのでぜひご覧ください。

enjoy!!!