facebooktwittergoogle_plusredditpinterestlinkedinmail

こんにちは、tapunです。

Open Jtalkで天気予報を喋ってもらうにあたり、スピーカーを充電したり電源をとってくるのがだるいので、AmazonでUSBスピーカーを購入しました!

過去記事:ラズパイに喋ってもらう作戦(Open JTalk1.08)

過去記事:毎朝、東京の天気予報を喋ってもらう(お天気Webサービス)

パワードスピーカーコーナー


購入したスピーカー

音源と電源のどっちもUSBケーブル1本で供給できるのでコンパクト!といううたい文句に惹かれて購入しました。

結果的には音は出ているのですが、結構ハマったので回避策を記載しておきます。

やったこと

USB1本なのでそのままRaspberry Pi のUSBポートにさしました。

  1. きちんと認識しているか確認
    1. $ cat /proc/asound/cards
    2. 0 [ALSA ]: bcm2835 - bcm2835 ALSA
    3. bcm2835 ALSA
    4. 1 [Device ]: USB-Audio - USB Sound Device
    5. C-Media INC. USB Sound Device at sb-3f980000.usb-1.3, full speed
    $ cat /proc/asound/cards
    0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                          bcm2835 ALSA
    1 [Device         ]: USB-Audio - USB Sound Device
                          C-Media INC. USB Sound Device at sb-3f980000.usb-1.3, full speed

     認識していますが、USBスピーカーは上から2番目になっているので、このままでは音が出ません。

  2. USBスピーカーの優先度を上げる ・・・・できない。ファイルがない。

    ここからがハマりました。
    ググっても古いOSの情報しか出てこず、設定ファイルがないんですよね~
    よくある情報だと、/etc/modprobe.d/alsa-base.conf の中身を書き換える方法が一般的なんですが、私が使ってるRapsbianではこのファイルが存在しません。

    私のPiのバージョンはこちらです

    1. $ uname -a
    2. Linux raspberrypi 4.1.11-v7+ #822 SMP PREEMPT Fri Oct 23 16:22:18 BST 2015 armv7l GNU/Linux
    $ uname -a
    Linux raspberrypi 4.1.11-v7+ #822 SMP PREEMPT Fri Oct 23 16:22:18 BST 2015 armv7l GNU/Linux

     

試したこと(2つ)

/usr/share/alsa/alsa.conf を書き換える

海外のフォーラムを検索して、下記の情報を見つけました。

The file your looking for is located in /usr/share/alsa/alsa.conf. Its not called alsa-base.conf just alsa.conf

All the relevent text is in that file just run sudo nano /usr/share/alsa/alsa.conf change the default sound card to 1 or whatever one you prefer obviously 0 is default so not that one i also deleted the # from the line that says… load card-specific configuration files (on request) and now i have the sound coming from my cirrus audio card running debian 8 jessie on ras pi2
引用:http://superuser.com/questions/989385/alsa-base-conf-missing-in-new-raspberry-pi-raspbian-jesse 

設定手順

  1. alsa.confを開きます。
    1. $ sudo nano /usr/share/alsa/alsa.conf
    $ sudo nano /usr/share/alsa/alsa.conf
  2. 下記の設定箇所を変更します。
    1. ★変更前
    2. defaults.ctl.card 0
    3. defaults.pcm.card 0
    4. ★変更後
    5. defaults.ctl.card 1
    6. defaults.pcm.card 1
    ★変更前
    defaults.ctl.card 0
    defaults.pcm.card 0
    
    ★変更後
    defaults.ctl.card 1
    defaults.pcm.card 1

これで完璧かな~!と思ってjsayコマンドを実行したところ・・・

まだ音が鳴りません! 😥 

なのでまた海外フォーラムの情報を検索していたところ、また有益な情報が見つかりました!

~/.asoundrcを読み込まないように設定する

同じような悩みをもつ外国の方のポストです。

I found a quick, dirty workaround for this problem. The .asoundrc file is called from /usr/share/alsa/alsa.conf, the first lines of which are below:

  1. #
  2. # ALSA library configuration file
  3. #
  4. # pre-load the configuration files
  5. @hooks [
  6. {
  7. func load
  8. files [
  9. {
  10. @func concat
  11. strings [
  12. { @func datadir }
  13. "/alsa.conf.d/"
  14. ]
  15. }
  16. "/etc/asound.conf"
  17. "~/.asoundrc"
  18. ]
  19. errors false
  20. }
  21. ]
#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
   {
      func load
      files [
         {
            @func concat
            strings [
               { @func datadir }
               "/alsa.conf.d/"
            ]
         }
         "/etc/asound.conf"
         "~/.asoundrc"
      ]
      errors false
   }
]

 By commenting out the “~/.asoundrc” line it tells ALSA to ignore the file.  

  1. #
  2. # ALSA library configuration file
  3. #
  4. # pre-load the configuration files
  5. @hooks [
  6. {
  7. func load
  8. files [
  9. {
  10. @func concat
  11. strings [
  12. { @func datadir }
  13. "/alsa.conf.d/"
  14. ]
  15. }
  16. "/etc/asound.conf"
  17. # "~/.asoundrc"
  18. ]
  19. errors false
  20. }
  21. ]
#
#  ALSA library configuration file
#

# pre-load the configuration files

@hooks [
   {
      func load
      files [
         {
            @func concat
            strings [
               { @func datadir }
               "/alsa.conf.d/"
            ]
         }
         "/etc/asound.conf"
#         "~/.asoundrc"
      ]
      errors false
   }
]

引用:https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=119755

設定手順

  1. alsa.confを開きます。
    1. $ sudo nano /usr/share/alsa/alsa.conf
    $ sudo nano /usr/share/alsa/alsa.conf
    1. ★変更前
    2. #
    3. # ALSA library configuration file
    4. #
    5. # pre-load the configuration files
    6. @hooks [
    7. {
    8. func load
    9. files [
    10. {
    11. @func concat
    12. strings [
    13. { @func datadir }
    14. "/alsa.conf.d/"
    15. ]
    16. }
    17. "/etc/asound.conf"
    18. "~/.asoundrc"
    19. ]
    20. errors false
    21. }
    22. ]
    23. ★変更後
    24. #
    25. # ALSA library configuration file
    26. #
    27. # pre-load the configuration files
    28. @hooks [
    29. {
    30. func load
    31. files [
    32. {
    33. @func concat
    34. strings [
    35. { @func datadir }
    36. "/alsa.conf.d/"
    37. ]
    38. }
    39. "/etc/asound.conf"
    40. # "~/.asoundrc"
    41. ]
    42. errors false
    43. }
    44. ]
    ★変更前
        #
        #  ALSA library configuration file
        #
    
        # pre-load the configuration files
    
        @hooks [
           {
              func load
              files [
                 {
                    @func concat
                    strings [
                       { @func datadir }
                       "/alsa.conf.d/"
                    ]
                 }
                 "/etc/asound.conf"
                 "~/.asoundrc"
              ]
              errors false
           }
        ]
    
    ★変更後
    #
    #  ALSA library configuration file
    #
    
    # pre-load the configuration files
    
    @hooks [
       {
          func load
          files [
             {
                @func concat
                strings [
                   { @func datadir }
                   "/alsa.conf.d/"
                ]
             }
             "/etc/asound.conf"
    #         "~/.asoundrc"
          ]
          errors false
       }
    ]
  2. Raspberry Pi を再起動します
    1. $ sudo reboot
    $ sudo reboot

これでやっとUSBケーブルから音が出るようになりました!!!

せっかく購入したスピーカーが無駄にならなくて良かった・・・!

まとめ

USBスピーカーから音を出すのに四苦八苦しましたが、海外フォーラムの情報を見て解決することが出来ました。

海外の情報は探すのが大変だったけどとりあえず解決できてよかったです 😀 

やっぱり日本語だと情報が限られますね・・・。

この記事が同じく音が出ない方の参考になったら幸いです。


 


Raspberry Pi ブログランキングへ

最後まで読んでいただいて、ありがとうございました!

よかったらshareやコメントお願いします。