Rubyから複数の音声ファイルを繋げる
Rubyから複数の音声ファイルを繋げる方法をまとめます。
soxを使用する
CUI上で音声ファイルを扱う時に便利なツールとして、soxがあります。
このsoxを使用します。
インストール
soxをMacにインストールします。
brew install flac sox chromaprint
Rubyからsoxを操作する
Rubyからsoxを操作するために、下記のライブラリを使用しました。
https://github.com/TMXCredit/ruby-sox
インストール
gemでインストールしました。
gem 'ruby-sox', github: 'TMXCredit/ruby-sox'
実装してみる
# 音声ファイルのパスの配列を定義 audio = ['/path/to/audio1.mp3', '/path/to/audio2.mp3'] combiner = Sox::Combiner.new(audio, :combine => :concatenate) combiner.write('/path/to/result.mp3')
これだけで、audio1.mp3とaudio2.mp3が繋がったファイルとして、result.mp3が書き出されます。
まとめ
soxはファイルと繋げるだけでなく、音声をフェードインさせたり、Mixさせたりと、いろいろな事ができるそうなので、いろいろ調べてみると楽しそうです。