USBスピーカーをデフォルトに設定する 【Raspberry Pi】

Raspberry Pi

Raspberry Pi で USB スピーカーをデフォルトに設定する手順についてまとめておきます。
具体的には、USB スピーカーを使って音声再生を自動化しようとすると、音声出力のデフォルトが USB スピーカーとなるよう設定しておく必要があります。そこで、USB スピーカーを設定する、一連の手順についてまとめておきます。
以下の環境で動作確認をしています。

環境: Raspberry Pi  3 model B+、Buster、USB スピーカー

背景

Raspberry Pi を複数持っています。また、USB スピーカーも複数持っています。
これらを組み合わせると、好きな音楽の自動再生システムを作ることができます。また、自宅の各部屋などで、指定時刻に、時報、天気予報、お知らせを自動で再生することも可能です。
持っているモノはできる限り有効活用したいところです。

手順としては、たとえば、Python で音声を再生するスクリプトを作っておきます。
スクリプトがうまく動いたらそのスクリプトを Raspberry Pi (Linux)の crontab -e で設定しておきます。
すると、記載した指定時刻に自動実行できるようになります。(Python を使わなくても、実行するコマンドを直接、crontab -e で記載しても動作します。)

そこで、手元の USB スピーカーを Raspberry Pi の USBポートに接続して使おうとしたところ、音声出力のデフォルトが 3.8mm ミニプラグのスピーカーとなっており、設定ファイルの修正が必要となりました。
また、crontab -e で設定をして自動化する際も、いくつかハマりやすいポイントがありましたが、いくらか試行錯誤をしたところ、うまく動くようになりました。
そこで、USB スピーカーを設定する一連の手順とポイントについてまとめ、公開しておくことにします。

なお、動作確認をしている USB スピーカーは以下の製品です。
・ サンワサプライ コンパクトPCスピーカー USB 接続 MM-SPU8BK
★ 同製品は、スピーカー側のアナログ調整でボリュームの設定ができるようになっています。音声の自動再生をする場合は、この製品のようにスピーカー側で調整できるととても便利です。日ごろは Raspberry Pi 本体には全く触れず自動再生して使うことになるため、スピーカー単体で音量調整をしたくなる場面が多いためです。加えて、Raspberry Pi の音声関連はバージョン毎に仕様が異なるケースも生じていますので、ハード側でボリューム調整をしてしまったほうが簡単です。

USB スピーカーをデフォルト設定にする

デフォルトの音声出力を変更しなくても、Raspberry Pi の GUI 画面上で手動で設定しても USB スピーカーから音声を再生することは可能です(一時的には)。
ところが、デフォルトの出力設定が 3.5mm ミニプラグのスピーカーのままとなっていると、cron を使って自動で音声を再生しようとしたとき、音声出力はデフォルトの設定になってしまいます。
そこで、まず、USB スピーカーをデフォルトとなるよう設定します。

コンフィグ画面での USB スピーカーの設定

あらかじめ、Raspberry Pi の USBポートに USB スピーカーを接続しておきます。
① Raspberry Pi でターミナルを起動します。
② ターミナル上で以下を入力します。
sudo raspi-config
→ ”Raspberry Pi Software Configuration Tool” が起動します。
以後、矢印 [↑] 、[↓] 、[tab] 、[enter] キーを使って設定します。
③ ”1 System Options” を選択した状態で、[enter] キーを押します。
(以後、<了解>を選択しても動作します。)
④ ”S2 Audio” を選択し、[enter] キーで選択します。
⑤ ”2 USB Audio” を選択し、[enter] キーで選択(設定)します。
⑥ <Finish> を選択して [enter] キーを押すことで、設定画面を終了します。

設定ファイルを編集し、デフォルトでの音声出力を変更する

⑦ ターミナル上で以下を入力します。
ls -al /usr/share/alsa
→ 指定したフォルダ内のファイル一覧が表示されます。
設定ファイル alsa.conf がフォルダ内にあることを確認します。(日付も念のため確認しておきます。)
⑧ 以下を例に、設定ファイル asla.conf を開いて編集モードにします。
sudo vi /usr/share/alsa/alsa.conf
⑦ ⑥のファイルの始めあたりで “defaults.ctl.card 0” となっている行を探し、下記のように修正します。
修正前
defaults.ctl.card 0
defaults.pcm.card 0
修正後
# defaults.ctl.card 0
# defaults.pcm.card 0
defaults.ctl.card 1
defaults.pcm.card 1
⑧ ファイルを保存して編集モードを終了します。
例: [esc] → “:” キー → “wq” (書き込み write & 終了 quit )→ [enter]
⑨ Raspberry Pi の画面右上のスピーカーのアイコンを左クリックし、スピーカー出力の設定の確認をしておきます。
( “Audio Advantage Microll” にチェックが入っている状態で、正常に動作しています。)
⑩ 以下を参考に Raspberry Pi をシャットダウン後、電源を入れなおし、Raspbery Pi を再起動します。
sudo shutdown -h now
→ 設定完了です。
※ 音声ファイルを再生してみて、USB スピーカーが動作することを確認してください。
※ また、デフォルトのスピーカーを 3.5mm ミニプラグのスピーカーに戻す場合は、⑦でコメントアウトした部分を元に戻してください。

cron を使った自動再生の設定例

つぎに、音声ファイルを自動再生する設定例についてまとめておきます。
Linux の cron という機能を使います。なお、自動再生時に大音量とならないよう、音量調整は事前に済ませておいてください。
⑪ Raspberry Pi 内に音声ファイルを準備します。
例: “/home/pi/Music” フォルダ内に mp3 ファイル “test1.mp3” を保存しておきます。
⑪ ターミナルを起動して以下を入力し、cron の編集画面にします。
crontab -e
⑫ 編集画面で末尾等に以下を参考に追記をします。
例: 00 12 * * * cvlc –play-and-exit /home/pi/Music/test1.mp3
★ 記載例は、Raspberry Pi で標準で搭載されている VLCメディアプレーヤーで、指定した mp3 ファイルを 12:00 に再生する例です。 音声ファイルの名前やパスは、適宜、修正してください。
★ 時刻(00 12、分、時間の順で記載します)は、テストのため、現在時刻の数分後に設定して、動くことをまず確認してください。
★ また、”cvlc … “としたところで、”sudo cvlc …” とすると動作しませんでした。VLC メディアプレーヤーの仕様として、root 権限では動作しない、ということのようです。
⑬ ⑫の修正が終わったら、[ctrl] + “x” キーを押します。修正内容を保存する場合は “y” キーを押します。
保存しない場合は “n” キーを押します。
→ 自動実行の設定完了です。

★ 設定した時刻(例 12:00)に音声ファイルが自動で再生することを確認してください。
また、USB スピーカーが正常に動くことを確認してください。
うまく動いたら、⑫の時刻やファイル名を実際に使う場面に合わせて修正してください。

うまく動かないとき

USB スピーカーがうまく動かないときの確認事項を挙げておきます。
※ 音声がまったくならないときは、3.5mm ミニプラグのスピーカー(または、ヘッドフォン)と USB スピーカーの2つをつないでみて、音声出力がどちらになっているか確認してみてください。
3.5mm ミニプラグ側から音声が出ている場合は、タイプミスなどで、設定が反映されていないことが考えられます。
※ また、ターミナルから手動で mp3 を再生したときと、cron で自動再生したときとでは、音声出力が切り替わることがありました(実行するユーザ権限が異なっているため)。音声出力は Raspberry Pi の GUI 画面上でも設定ができるため、混乱しやすいです。そこで、3.5mm ミニプラグと USB の2種類のスピーカーをつないでみることで、出力の確認が可能です。
※ Raspberry Pi の起動が不安定になったときは、Raspberry Pi への電源供給が十分か確認してみてください。
仕様にもよりますが、 USB スピーカーの場合、USB 端子から電源供給がされる製品が多いと思います。上記の USB スピーカー製品の場合、消費電力は 500mA となっています。したがって、Raspberry Pi に供給する電力は、スピーカーの消費電力も含め、十分となっている必要があります(=1Aでは不足する可能性が高いです)。
また、Raspberry Pi の USB 端子に機器をたくさんつないでいる場合も、消費電力がその分、増えますので、Raspberry Pi への電源供給を十分に確保しておく必要があります。
私の環境では、スマートフォン用の USB 電源で 5V 2.4A のものあれば、正常に動作しました。しかし、2A を下回る安価な USB 電源を使ってみたところ、Raspberry Pi の起動自体が不安定となりました。(結果として音声が出ない。スピーカーを外すと正常起動する。)

まとめ

Raspberry Pi で USB スピーカーをデフォルトに設定する手順についてまとめました。
加えて、cron の機能を使って、音声ファイルを自動再生する設定例についてもまとめました。

これで、USB スピーカーも使えるようになりました。使っていないスピーカーや Raspberry Pi 本体があれば、自由に組み合わせて、各部屋/各場所に配置して音声ファイルを自動で再生するなど、有効活用が可能となります。
なお、フォルダに複数の音声ファイルを入れておくと順次再生する方法などを以下の関連リンクでまとめています。USB スピーカーを使って自動再生をするなど活用できると思います。興味のある方は、参照してみてください。

関連リンク
・ フォルダ内のすべての音声ファイルを再生する 【Raspberry Pi】

外部リンク
・ サンワサプライ コンパクトPCスピーカー USB 接続 MM-SPU8BK

タイトルとURLをコピーしました