留守番録音にもおすすめなLinuxコマンドライン用録音再生ソフト
Version 01-2
2005年11月11日
「トシオのコンソールサウンドレコーダー・プレーヤー」は、Linuxのコンソールで動く、WAVファイルを録音・再生するソフトウエアです。
引数にWAVファイルを指定して起動すれば、すぐに録音や再生が始まりますので、ちょっと音を記録したり聞いたりしたくなったときに、すぐに活用できます。
録音する長さを、オプションとして指定できます。crontabを使って動作日時を指定すれば、留守番録音などに活用できます。
可能な限り音飛びが起こらないように努力しました。音飛びの回数を数える機能もあります。
サウンドドライバの「ALSAドライバ」(0.9.8以上)がインストールされたLinux環境で、動作します。
プログラムは、録音用の「crec」と、再生用の「cplay」の2本からなります。
シンプルな構造にしたので、動作は軽快です。
ソースコードもついていますので、サウンドドライバの使い方を学ぶにも、よろしいプログラムかと思います。
開発は、Vine Linux 3.2にALSAドライバ0.9.8以上をインストールした環境で行いました。
このソフトウエアはフリーソフトウエアです。GNU GPL 2というライセンスでご利用いただけます。詳しくは「GNU 一般公有使用許諾書」(GNU GPL 2)をご覧ください。
パソコンに、ALSAドライバと、ALSAライブラリがインストールされていることを確認しましょう。これらのドライバとライブラリは、http://www.alsa-project.org/にありますので、ダウンロードしてインストールしておきましょう。
テキスト表示で、「ncurses」と呼ばれるライブラリを使っています。
Vine Linuxのパッケージ名としては、「ncurses」と「ncurses-devel」が必要になるので、もしもインストールされていない場合は、入れておきましょう。
圧縮されたファイルを展開します。この文章ファイルは、展開されたファイルの1つですので、このファイルをご覧になっている段階で、既にファイルの展開は終わっています。
展開されたファイルの中に、「crec」と「cplay」の2つの実行ファイルがあります。
コンソールから、
./crec abcde.wav
と入力して、録音が始まるようでしたら、レコーダーのプログラムは正しく動作しています。
ついでに、コンソールから
./cplay abcde.wav
と入力して、再生の動作をしているようでしたら、プレーヤーのプログラムも正しく動作しています。
crec と cplay が正しく動作するようでしたら、これらのファイルをパスの通ったディレクトリに移動しておきましょう。例えば、 /usr/local/bin などがおすすめできます。
上記の方法で正しく動作しない場合や、自分でコンパイルをしたい場合は、上記の操作をした後で、以下の操作も行います。
まず、現在の crec と cplay を削除します。コンソールに次のように入力します。
rm crec cplay
次に、コンソールで
make
と入力すると、コンパイルが行われて、新しい crec と cplay が出現します。
引数に.wavファイルを指定して起動すると、すぐに録音が始まります。
ファイル名だけを指定して起動した場合は、サンプリング周波数44100Hz、2ch(ステレオ)、量子化ビット数16ビットのフォーマットで録音します。
crec が置かれたディレクトリの中で、コマンドラインから
./crec abcde.wav
と入力すれば、abcde.wavに録音が行われます。
なお、録音を始める前に同じ名前のファイルがあった場合は、古いファイルの内容が消えますので、ご注意ください。
録音中は、次の画面となります。
録音をやめる時は、スペースキーを押します。スペースキーを押すと、音声の長さをファイルに記録して、録音を終了します。
コントロールキーを押しながらCを押してプログラムを停止すると、音声の長さをファイルに記録できません。その結果、プレーヤーによっては正しく演奏できないファイルになってしまいます。
スペースキーを押して、正常に終了した場合は、次の画面が表示されます。
万が一音飛びがあった場合は、「正常終了。」のかわりに、発生した音飛びの回数が表示されます。
-f は、サンプリング周波数(Hz)です。電話くらいであれば8000Hz、CDくらいであれば44100Hzにするとよいでしょう。「-f 8000」のように指定します。
-c はチャンネル数です。1チャンネルでモノラル、2チャンネルでステレオになります。「-c 1」のように指定します。
-w は量子化ビット数です。8または16が使えます。「-w 8」のように指定します。
-b を指定すると、他のソフトがサウンドカードで録音を行っている場合に、その録音が終わるまで待ち、その後で録音を開始します。-b を指定しない場合は、他のソフトが録音していると、すぐにあきらめて終了します。
-l は、録音する長さです。長さの指定は、「日:時間:分:秒」「時間:分:秒」「分:秒」あるいは「秒」だけで行います。例えば、1時間23分4秒録音したい場合は、「-l 1:23:4」と指定します。指定した時間がたつと、スペースキーを押さなくても録音は自動的に止まります。
「-d オーディオデバイス名」で、オーディオデバイスを指定できます。例えば「plughw:0,0」です。名前の付けかたは、このソフトが利用しているALSAドライバに従います。
-q を指定すると、エラーがなければ特に何も表示を行いません。ただし、スペースキーを押しても録音が止まらなくなります。止める場合は、 -l オプションで長さを指定するとよいでしょう。
Ctrlキーを押しながらCキーを押せば、録音は止まりますが、この方法で止めると、ファイルのへッダ部分に不適切な情報が残るため、プレーヤーによっては再生できないファイルとなる場合があります。
-h を指定すると、使い方の説明を表示して、すぐに終了します。
例えば、8000Hz、1チャンネル、8ビットのフォーマットで1分間b.wavに録音する場合は、次のように入力します。
./crec -l 1:0 -f 8000 -c 1 -w 8 b.wav
Linuxなどには、特定の日時に自動的にプログラムを起動するための仕組みとして、crontabがあります。
crontabの仕組みに、 crec コマンドを登録することで、留守番録音を簡単に実現できます。
例えば、crecコマンドが /home/sugihara/bin/crec としてインストールされている場合で、木曜日の19時0分から30分間録音を行い、 /home/sugihara/abc.wav を出力する場合は、次のようにします。
まず、次の内容のテキストファイルを作成します。行の終わりには改行を入れておきましょう。
0 19 * * 4 /home/sugihara/bin/crec -q -l 30:0 /home/sugihara/abc.wav
このファイルを、例えばa.txtという名前で保存しておきます。
コンソールから、次のように入力します。
crontab a.txt
これで、crecコマンドの実行が予約されました。
予約を取り消す場合は、コンソールから crontab -r と入力します。
crontab コマンドで登録するファイルの詳しい書き方は、crontabのマニュアルなどを読んで勉強しましょう。ごく簡単に説明しますと、こうです。
書式は、行ごとに「分 時 日 月 曜日 コマンド」です。
名称 | 説明 |
---|---|
分 | 0分から59分までの範囲で、コマンドが起動する時刻の「分」を指定します。 |
時 | 0時から23時までの範囲で、コマンドが起動する時刻の「時」を指定します。 |
日 | 1日から31日までの範囲で、「何月何日」というときの「日」にあたる部分を指定します。 |
月 | 1月から12月までの範囲で、「何月何日」というときの「月」にあたる部分を指定します。 |
曜日 | コマンドの実行を「毎週何曜日」の形式で指定する場合は、0から7までの範囲の数値で曜日を指定します。曜日と数値との対応は、次のとおりです。 |
曜日 | 値 |
---|---|
日 | 0 または 7 |
月 | 1 |
火 | 2 |
水 | 3 |
木 | 4 |
金 | 5 |
土 | 6 |
「コンソールサウンドレコーダー」には、録音レベルを調整したり、録音ソースを選んだりする機能は、ありません。これらの機能は、ALSAドライバについているalsamixerというソフトが持っています。このソフトは、起動したらまずスペースキーを押さないと、正しく動作しないことがありますので、気をつけましょう。
「コンソールサウンドレコーダー」では、ファイルの長さを64ビットで管理しているため、録音が可能な長さに、制限はほとんどありません。何百ギガバイトでも録音できると思われます。ただし、2GBを超えるような巨大なファイルは、再生するソフトウエアによっては、正しく再生できない場合があります。
引数にWAVファイルを指定して起動すると、指定したファイルを再生します。
WAVファイルには、PCM形式で録音された1チャンネル(モノラル)か2チャンネル(ステレオ)のものが使えます。
cplay が置かれたディレクトリの中で、コマンドラインから
./cplay abcde.wav
と入力すれば、abcde.wavが再生されます。
再生が終わると、自動的に終了します。
途中で再生を止めたい場合は、コントロールキーを押しながらCを押します。
途中で止めずに再生が終了すると、メッセージを表示します。
新しい情報や、より詳しい使い方の情報は、作者のホームページのソフトウエアのコーナーにありますので、どうぞご覧ください。
製作著作: 杉原俊雄(すぎはら としお)
sugihara@syl.t.u-tokyo.ac.jp
(c) 2004 - 2005 Sugihara Toshio.