はじめに
この実験では、ALSA(Advanced Linux Sound Architecture)ユーティリティの一部であるLinuxのaplayコマンドの使い方を学びます。aplayコマンドは、ALSAサウンドシステムに対するユーザーレベルのインターフェイスを提供し、コマンドラインからオーディオファイルを再生できるようにします。まず、aplayを使用するために必要なパッケージをインストールし、その後、さまざまなオプションとフラグを調べて、さまざまな方法でオーディオファイルを再生します。
この実験では、以下の手順がカバーされます。aplayに必要なパッケージのインストール、aplayコマンドを使用したオーディオファイルの再生、および利用可能なaplayコマンドオプションとフラグの探索です。この実験は、Linux環境でのオーディオ再生管理に役立つツールであるaplayコマンドに関する実際の例と堅牢な理解を提供することを目的としています。
aplayに必要なパッケージをインストールする
この手順では、Linuxでaplayコマンドを使用するために必要なパッケージをインストールします。aplayコマンドは、ALSA(Advanced Linux Sound Architecture)ユーティリティの一部であり、ALSAサウンドシステムに対するユーザーレベルのインターフェイスを提供します。
まず、パッケージインデックスを更新しましょう。
sudo apt-get update
出力例:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Fetched 324 kB in 1s (324 kB/s)
Reading package lists... Done
次に、aplayコマンドや他のALSAユーティリティを含むalsa-utilsパッケージをインストールします。
sudo apt update
sudo apt-get install -y alsa-utils
出力例:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
Suggested packages:
alsa-oss
The following NEW packages will be installed:
alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf alsa-utils libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,265 kB of archives.
After this operation, 5,120 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-firmware-loaders amd64 1.2.4-1 [12.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-topology-conf all 1.2.4-1 [11.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-ucm-conf all 1.2.4-1 [89.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-utils amd64 1.2.6-1ubuntu1 [1,153 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 libatopology2 amd64 1.2.4-1 [13.9 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsnd-dev amd64 1.0.29-1 [18.0 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1 amd64 1.0.31-2 [111 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1-dev amd64 1.0.31-2 [57.1 kB]
Fetched 1,265 kB in 1s (1,265 kB/s)
Selecting previously unselected package alsa-firmware-loaders.
(Reading database... 123412 files and directories currently installed.)
Preparing to unpack.../alsa-firmware-loaders_1.2.4-1_amd64.deb...
Unpacking alsa-firmware-loaders (1.2.4-1)...
Selecting previously unselected package alsa-topology-conf.
Preparing to unpack.../alsa-topology-conf_1.2.4-1_all.deb...
Unpacking alsa-topology-conf (1.2.4-1)...
Selecting previously unselected package alsa-ucm-conf.
Preparing to unpack.../alsa-ucm-conf_1.2.4-1_all.deb...
Unpacking alsa-ucm-conf (1.2.4-1)...
Selecting previously unselected package alsa-utils.
Preparing to unpack.../alsa-utils_1.2.6-1ubuntu1_amd64.deb...
Unpacking alsa-utils (1.2.6-1ubuntu1)...
Selecting previously unselected package libatopology2:amd64.
Preparing to unpack.../libatopology2_1.2.4-1_amd64.deb...
Unpacking libatopology2:amd64 (1.2.4-1)...
Selecting previously unselected package libsnd-dev:amd64.
Preparing to unpack.../libsnd-dev_1.0.29-1_amd64.deb...
Unpacking libsnd-dev:amd64 (1.0.29-1)...
Selecting previously unselected package libsndfile1:amd64.
Preparing to unpack.../libsndfile1_1.0.31-2_amd64.deb...
Unpacking libsndfile1:amd64 (1.0.31-2)...
Selecting previously unselected package libsndfile1-dev:amd64.
Preparing to unpack.../libsndfile1-dev_1.0.31-2_amd64.deb...
Unpacking libsndfile1-dev:amd64 (1.0.31-2)...
Setting up alsa-firmware-loaders (1.2.4-1)...
Setting up alsa-topology-conf (1.2.4-1)...
Setting up alsa-ucm-conf (1.2.4-1)...
Setting up libatopology2:amd64 (1.2.4-1)...
Setting up libsnd-dev:amd64 (1.0.29-1)...
Setting up libsndfile1:amd64 (1.0.31-2)...
Setting up libsndfile1-dev:amd64 (1.0.31-2)...
Setting up alsa-utils (1.2.6-1ubuntu1)...
Processing triggers for man-db (2.10.2-1)...
Processing triggers for libc-bin (2.35-0ubuntu3)...
これでaplayコマンドに必要なパッケージがインストールされ、次の手順に進むことができます。
aplayコマンドを使ってオーディオファイルを再生する
この手順では、Linuxでaplayコマンドを使ってオーディオファイルを再生する方法を学びます。
まず、サンプルオーディオファイルをダウンロードして、例で使用しましょう。
wget https://www.soundjay.com/button/sounds/beep-07.wav -O ~/project/beep.wav
出力例:
--2023-04-12 08:31:33-- https://www.soundjay.com/button/sounds/beep-07.wav
Resolving www.soundjay.com (www.soundjay.com)... 104.24.108.5, 104.24.109.5
Connecting to www.soundjay.com (www.soundjay.com)|104.24.108.5|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11174 (11K) [audio/x-wav]
Saving to: '~/project/beep.wav'
~/project/beep.wav 100%[===================>] 10.92K --.-KB/s in 0s
2023-04-12 08:31:33 (128 MB/s) - '~/project/beep.wav' saved [11174/11174]
次に、aplayコマンドを使ってオーディオファイルを再生します。
aplay ~/project/beep.wav
出力例:
Playing WAVE '/home/labex/project/beep.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
システムのスピーカーまたはヘッドフォンからオーディオファイルが再生されるのが聞こえるはずです。
再生を停止するには、Ctrl+Cを押します。
aplayコマンドは、音量設定、オーディオのループ再生など、オーディオ再生を制御するためのさまざまなオプションをサポートしています。次の手順でこれらのオプションを調べます。
aplayコマンドのオプションとフラグを調べる
この最後の手順では、aplayコマンドの利用可能ないくつかのオプションとフラグを調べます。
まず、aplayコマンドのヘルプメニューを表示しましょう。
aplay --help
出力例:
Usage: aplay [OPTION]... [FILE]...
Plays a PCM sound file.
Options:
-h, --help help
-D, --device=NAME set the device name
-c, --channels=NUM set the number of channels
-f, --format=FORMAT set the sample format
-r, --rate=RATE set the sample rate
-t, --type=TYPE set the file type
-v, --version show version
-V, --verbose show PCM hardware parameters
-q, --quiet quiet mode
-l, --list-devices list all soundcards and digital audio devices
-L, --list-pcm list all PCM devices
-Xalsa-opts pass options for ALSA backend
試してみるのに役立ついくつかのオプション:
オーディオファイルをループ再生する:
aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav -l 3これは、
beep.wavファイルをステレオ(2チャンネル)で、サンプリングレート44.1kHz、16ビットリトルエンディアン形式で再生し、3回ループさせます。音量を調整する:
aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav --volume 50これは、
beep.wavファイルを50%の音量で再生します。使用可能なオーディオデバイスを一覧表示する:
aplay -lこれは、システム上のすべての使用可能なオーディオデバイスの一覧を表示します。
必要に応じて、さまざまなオプションとフラグを試して、オーディオ再生をカスタマイズしてください。
まとめ
この実験では、ALSA(Advanced Linux Sound Architecture)ユーティリティの一部であるLinuxのaplayコマンドを使用するために必要なパッケージをインストールする方法を学びました。パッケージインデックスを更新し、aplayコマンドや他のALSAユーティリティを含むalsa-utilsパッケージをインストールしました。その後、aplayコマンドのオプションとフラグを調べ、オーディオファイルを再生して再生設定をカスタマイズすることができます。
この実験では、aplayコマンドの実際の使用方法をカバーし、オーディオファイルの再生や利用可能なオプションとフラグの理解を含みます。この知識は、Linux環境でのさまざまなオーディオ関連のタスクに適用できます。



