2017/06/29(木) [n年前の日記]
#1 [raspberrypi] Raspberry Pi3でサウンドを再生
Raspberry Pi3 のヘッドフォンジャックについて調べてるうちに、今まで Raspberry Pi3 から音を出したことがないなと気がついて。せっかくだから音が出るかどうか試しみようかなと。
◎ HDMI出力を確認。 :
まずは HDMI接続したTV(ディスプレイ)から音が出るか確認してみる。接続先のディスプレイは、MITSUBISHI MDT243WG。
ググったところ、/boot/config.txt を編集して #hdmi_drive=2 の先頭の#を消してコメントアウトを外すと、HDMI接続されたTVに音声信号が送れる状態になる、という話を見かけたので試したり。
音楽ファイル(wav,mp3等)を再生できるか確認するために、以下を入れる。
デスクトップ上で vlc を起動して wav や mp3 を再生してみたが、音が出なかった。と思ったら、ディスプレイの音声入力がHDMIじゃないものになってた。何やってんだ自分。トホ。ディスプレイ側の音声入力をHDMIに切り替えたらちゃんと音が出た。
が、音の最初のあたりが聞こえてこない。おそらく、以下で推測されてるように、デジタル変換が間に合ってない予感…。 *1
_Raspberry Pi | aplayコマンドで音声の冒頭が再生されない問題→アナログスピーカーで解決! - たぷん日記
さておき、ターミナルを起動して、以下でも一応再生できることを確認。ただ、こちらも最初のあたりの音が聞こえてこなかった。
ググったところ、/boot/config.txt を編集して #hdmi_drive=2 の先頭の#を消してコメントアウトを外すと、HDMI接続されたTVに音声信号が送れる状態になる、という話を見かけたので試したり。
sudo vi /boot/config.txt sudo reboot
音楽ファイル(wav,mp3等)を再生できるか確認するために、以下を入れる。
sudo apt install vlc mpg321
- デスクトップ上で確認したいだけなら vlc だけ入れとけばヨサゲ。
- mpg321 はコマンドラインからmp3を再生するためのプログラム。
- 更に、コマンドラインから wav を再生できる aplay というプログラムも、Raspberry Pi には最初から入ってるらしい。
デスクトップ上で vlc を起動して wav や mp3 を再生してみたが、音が出なかった。と思ったら、ディスプレイの音声入力がHDMIじゃないものになってた。何やってんだ自分。トホ。ディスプレイ側の音声入力をHDMIに切り替えたらちゃんと音が出た。
が、音の最初のあたりが聞こえてこない。おそらく、以下で推測されてるように、デジタル変換が間に合ってない予感…。 *1
_Raspberry Pi | aplayコマンドで音声の冒頭が再生されない問題→アナログスピーカーで解決! - たぷん日記
さておき、ターミナルを起動して、以下でも一応再生できることを確認。ただ、こちらも最初のあたりの音が聞こえてこなかった。
aplay hoge.wav mpg321 hoge.mp3
◎ ヘッドフォンジャックから出力。 :
HDMIとヘッドフォンジャックを切り替えて出力してみた。
ヘッドフォンジャックから一応音は聞こえてきた。HDMI出力時には聞こえてこなかった、音声の最初のあたりもちゃんと流れてくる。
しかし予想通り、フツーの3極プラグのヘッドフォンを繋いだらノイズだらけで、とても聞けたものではなかった。
自動判別 $ sudo amixer cset numid=3 0 ヘッドフォンジャック $ sudo amixer cset numid=3 1 HDMI出力 $ sudo amixer cset numid=3 2
ヘッドフォンジャックから一応音は聞こえてきた。HDMI出力時には聞こえてこなかった、音声の最初のあたりもちゃんと流れてくる。
しかし予想通り、フツーの3極プラグのヘッドフォンを繋いだらノイズだらけで、とても聞けたものではなかった。
◎ ノイズ対策を試してみるも失敗。 :
Raspberry Piは4極ジャック(先端から L/R/GND/VIDEO)なので、そこに3極プラグ(先端から L/R/GND)を差すと、VIDEO信号とGNDが混ざってしまってノイズになる、という説が巷にはあって。
であれば、それぞれの信号を分離すればノイズが減る・改善する可能性があるのでは。てなわけで、昨日、犬の散歩のついでに買ってきた新兵器(?)を試してみたり。
しかし、試してみたが結果は変わらなかった。どちらを使っても、やっぱりノイズが乗る。聞けたものではない。
100円ショップで購入したヘッドフォンはともかく、800円前後の AV-35AD02BK が初期不良品 or 設計ミスだったら嫌だなと不安になってきたので、テスター+手持ちの3.5mm・3極ジャックで測ってみたが、たしかに L/R/GND/VIDEO(MIC) は分離されていた。
ということは、Raspberry Pi3のジャックに差した段階でジャックとプラグの位置がずれて、GND と VIDEO が結局混ざっているのだろうか。でも、LとRは分離できてるように聞こえるし…。位置がずれてるとしたら、L/Rも分離できてない状態になりそうな。
もしかして、自分の場合、GPIO経由で繋いでる圧電ブザーと絡んでないか…。というのも、起動時に、GPIO経由で圧電ブザーを「ピポ」と鳴らすスクリプトを動かしてるけど、繋いだヘッドフォンからも何故か「ピポ」と鼓膜が破れそうなほどの大きい音が聞こえてきたわけで。GPIOとヘッドフォンジャックが繋がっちゃってるんじゃないか。
ていうかヘッドフォンジャックを外して、HDMI接続したディスプレイ側も音声をミュートにしたのに、aplay でwavを再生してみると、何故かRaspberry Pi3の周辺から、極めてかすかに音が聞こえる。本体にはスピーカがついてないのに、おかしい…。圧電ブザーがつられて鳴ってるんじゃないか…。
であれば、それぞれの信号を分離すればノイズが減る・改善する可能性があるのでは。てなわけで、昨日、犬の散歩のついでに買ってきた新兵器(?)を試してみたり。
- 100円ショップ Seria で購入した、スマートフォン用ステレオイヤホンマイク XYZ-13B。4極プラグ。マイク付き。コード長1.0m。
- ケーズデンキで購入した、ELECOM AV-35AD02BK 。4極プラグ → 3極ジャック x 2。800円前後。
しかし、試してみたが結果は変わらなかった。どちらを使っても、やっぱりノイズが乗る。聞けたものではない。
100円ショップで購入したヘッドフォンはともかく、800円前後の AV-35AD02BK が初期不良品 or 設計ミスだったら嫌だなと不安になってきたので、テスター+手持ちの3.5mm・3極ジャックで測ってみたが、たしかに L/R/GND/VIDEO(MIC) は分離されていた。
ということは、Raspberry Pi3のジャックに差した段階でジャックとプラグの位置がずれて、GND と VIDEO が結局混ざっているのだろうか。でも、LとRは分離できてるように聞こえるし…。位置がずれてるとしたら、L/Rも分離できてない状態になりそうな。
もしかして、自分の場合、GPIO経由で繋いでる圧電ブザーと絡んでないか…。というのも、起動時に、GPIO経由で圧電ブザーを「ピポ」と鳴らすスクリプトを動かしてるけど、繋いだヘッドフォンからも何故か「ピポ」と鼓膜が破れそうなほどの大きい音が聞こえてきたわけで。GPIOとヘッドフォンジャックが繋がっちゃってるんじゃないか。
ていうかヘッドフォンジャックを外して、HDMI接続したディスプレイ側も音声をミュートにしたのに、aplay でwavを再生してみると、何故かRaspberry Pi3の周辺から、極めてかすかに音が聞こえる。本体にはスピーカがついてないのに、おかしい…。圧電ブザーがつられて鳴ってるんじゃないか…。
◎ そもそもヘッドフォンを差す端子じゃないらしい。 :
以下の記事で気になる話が。
_ラズペリーパイのオーディオ・ジャックはライン出力 - 飽きたらそこでオシマイだよ!
Raspberry Pi のソレは、ライン出力用であって、ヘッドフォン端子じゃないという話。ギャフン。
_ラズペリーパイのオーディオ・ジャックはライン出力 - 飽きたらそこでオシマイだよ!
Raspberry Pi のソレは、ライン出力用であって、ヘッドフォン端子じゃないという話。ギャフン。
◎ dither云々の指定もしてみたけど。 :
/boot/config.txt に以下を書くと改善するという話も見かけたけど、試しても効果は感じられなかった。
disable_audio_dither=1おそらく昔は効果があった記述なのではあるまいか…。分からんけど。
◎ 参考ページ。 :
_Raspberry Piでwav/mp3ファイルを再生する方法(python編) - Qiita
_Raspbian(Jessie) のサウンド設定 - Qiita
_Raspberry Piで音遊び! | Device Plus - デバプラ
_Raspberry Pi | 合成音声をUSBスピーカーから出力したい!(ハマったポイント) ・ たぷん日記
_Raspberry Pi | aplayコマンドで音声の冒頭が再生されない問題→アナログスピーカーで解決! ・ たぷん日記
_RASPBIAN JESSIE WITH PIXEL でUSBオーディオアダプタを使う | KDL Tech Blog
_Raspberry Piの3.5mmジャックのアナログ音声出力の高音質化チャレンジしたけどダメでした - karaage. [からあげ]
_Raspberry Pi 3.5mm Audio Jack サウンドノイズ - Raspberry Pi - Ficus Online Forum
_Raspberry Pi - View topic - Rpi 2 - Background noises
_Raspbian(Jessie) のサウンド設定 - Qiita
_Raspberry Piで音遊び! | Device Plus - デバプラ
_Raspberry Pi | 合成音声をUSBスピーカーから出力したい!(ハマったポイント) ・ たぷん日記
_Raspberry Pi | aplayコマンドで音声の冒頭が再生されない問題→アナログスピーカーで解決! ・ たぷん日記
_RASPBIAN JESSIE WITH PIXEL でUSBオーディオアダプタを使う | KDL Tech Blog
_Raspberry Piの3.5mmジャックのアナログ音声出力の高音質化チャレンジしたけどダメでした - karaage. [からあげ]
_Raspberry Pi 3.5mm Audio Jack サウンドノイズ - Raspberry Pi - Ficus Online Forum
_Raspberry Pi - View topic - Rpi 2 - Background noises
*1: 英語圏の記事の中では、「音声の流れ始めと終わる時に勝手にフェードアウトをかけてくるTVも存在する」という話もあるので、それが正しければそのせいかもしれないけど…。
[ ツッコむ ]
以上です。