0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntuで音声ファイルを再生する方法

Last updated at Posted at 2024-09-17

はじめに

 Ubuntuで音声ファイルを再生する方法を紹介する。同時再生する際に、いくつか設定変更が必要なのでで紹介する。

動作確認環境

  • Ubuntu 20.04 x64/arm64
    • NVIDIA Jetson JetPack 5.1.1

方法

 ターミナルからaplayコマンドで音声ファイルを指定することで再生可能。コマンドが見つからない場合は以下でインストールする。

sudo apt update
sudo apt install alsa-base

デバイスの確認

aplay -l

結果例

**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: PCH [HDA Intel PCH], デバイス 0: ALC3234 Analog [ALC3234 Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: NVidia [HDA NVidia], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 2: NVidia_1 [HDA NVidia], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 3: UACDemoV10 [UACDemoV1.0], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

表示されている、カードNoとデバイスNoで音声デバイスを特定することができる。

音声ファイルの再生

例: カードNo=3、デバイスNo=0のデバイスで再生する場合

aplay --device="hw:3,0" {wav_file_path}
  • --device
    • 音声デバイスの指定 (hw:{card},{device})
      • hw:の後ろに、カードNo,デバイスNo
      • hwの前に、plugをつけることも可能
        • 下記警告が出る場合は、plugも付ける
          • 警告: レートが不正確です (要求値 = 44100Hz, 使用値 = 48000Hz)
    • 【推奨】PulseAudiooデバイスの指定(default)
      • defaultとすると、PulseAudioのデフォルトデバイス経由となり複数のアプリから同時再生可能となる
  • {wav_file_path}
    • 任意のWAVファイルパス

PulseAudioのデフォルトデバイスの変更方法

ALSAの設定ファイルを修正する。

sudo vi /usr/share/alsa/alsa.conf

ファイルの中身は以下のようになっている。

#
# defaults
#

# show all name hints also for definitions without hint {} section
defaults.namehint.showall on
# show just basic name hints
defaults.namehint.basic on
# show extended name hints
defaults.namehint.extended on
#
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
...

上記中のデフォルトカードNoとデバイスNoを、aplay -lで出てくるカード番号とデバイス番号に書き換える。

例:カードNo=3、デバイスNo=0の場合

defaults.ctl.card 3
defaults.pcm.card 3
defaults.pcm.device 0
defaults.pcm.subdevice -1

保存して終了。再起動などは不要。

音声ファイル再生のトラブルシューティング

aplay: set_params:1374: チャネル数が使用不可能

対策

--deviceにplugを入れる。

  • aplay --device="plughw:3,0" {wav_file_path}
    

aplay: main:852: オーディオオープンエラー デバイスもしくはリソースがビジー状態です

原因: デバイス指定が誤っている場合
対策

 deviceの設定が、文字列になっているかを確認する(--device="hw:x,x" になっているか確認)。

原因:他のデバイスが利用している場合
対策

 デバイスを直接指定しない(hw:を利用しない)で、PulseAudio経由にする(--device=defaultを指定)。詳細はこの記事を参照。

  • aplay --device=default {wav_file_path}
    

まとめ

 Ubuntuで音声ファイルを再生する方法を紹介した。複数アプリから同時再生する際には、デバイス指定をPulseAudioにすることで同時再生可能となる。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?