フリュー株式会社フリュー株式会社の開発者が技術情報を発信するブログです。2013-11-15CentOSでScalaからSoXを使って音声ファイルを操作する手順ソフトウェア開発部、粕谷(@daiksy)です。今回は音声ファイルの操作についてのお話です。我々のチームでは、ソーシャルゲームのサーバサイドの開発・運用を行っています。昨今のソーシャルゲームは、アニメーションや音声の再生など、一昔前に比べて表現がずいぶんリッチになっています。そのような流れの中で、我々のチームでも音声ファイルの操作について検証をはじめました。Scalaで構築しており、どうせならScalaから音声ファイルを操作しようと思いました。複数の音声ファイルの結合の3要件です。我々が扱っているScalaは、JVMで動作する言語であり、Javaの豊富なライブラリを使用することができます。いったライブラリ群を用いれば、音声ファイルの操作は行えるでしょうが、今回はそれらを使わずにSoXというツールをScalaから呼び出すことで要件を実現することにしました。理由は、SoXは基本的にコマンドラインで音声ファイルを操作するツールなので、Scalaからこれらのコマンドを呼び出せば、Javaのライブラリを使うよりも楽に要件が実現できそうだったからです。まとめると、システム構成は以下のようになります。SoXまず、最初の手順としては、SoXをCentOSにインストールする必要があります。インストールは実に簡単で、wgetで最新版をとってきて解凍し、makeするだけです。installこれだけで、SoXは使えるようになるはずです。CentOSを扱っている場合は注意が必要です。./configureを実行すると、SoXの設定状態が一覧表示されます。この時点での設定状態を見てみましょう。注目すべきはこの部分です。twolame...................noご覧のように、mp3がサポートされていません。今回、我々はmp3のファイルを扱う必要があるのですが、CentOSはデフォルトではmp3を扱えないのです。そこで、mp3を扱うために必要なライブラリを入れましょう。こちらのサイトを参考にしました。libvorbis-devel再度、SoXをmakeします。installこれで、SoXの状態が下記になっていれば準備完了です。twolame...................noサーバでSoXさえ動くようになれば、Scalaからこれを呼び出すのは容易です。conversion)によってStringにプロセスを実行するメソッドが拡張されます。-lコマンドの実行結果が格納されます。詳しくは、こちらをご参照ください。Interpolationを組み合わせることで、可読性も非常に高くSoXコマンドを扱うことができます。それぞれのコード例を見てみましょう。05:55Tweet関連記事2013-09-11Packer+Chef-SoloでAMI作りこんにちは。自称Chef導入委員長の国平です。立て続けの投稿...2013-06-26関JavaでJavaでなくChefの話をしてきました皆さま約一ヶ月ぶりです。先日、関西Javaエンジニ...2012-10-09play-velocity-plugin公開!皆様、お久しぶりです。この度、弊社で開発し...2011-07-07MIDIキーボードで3Dプリンタを演奏するはじめまして。フリューモバイル事業部の庄司です。Webサービスはじめまして。モバイル事業部の九岡です。6引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。