mieki256's diary



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に音声信号が送れる状態になる、という話を見かけたので試したり。
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とヘッドフォンジャックを切り替えて出力してみた。
自動判別
$ 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円ショップ Seria で購入した、スマートフォン用ステレオイヤホンマイク XYZ-13B。4極プラグ。マイク付き。コード長1.0m。
  • ケーズデンキで購入した、ELECOM AV-35AD02BK 。4極プラグ → 3極ジャック x 2。800円前後。
どちらも、4極プラグの品。L/R/GND と VIDEO(MIC)を分離しているはず。

しかし、試してみたが結果は変わらなかった。どちらを使っても、やっぱりノイズが乗る。聞けたものではない。

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 のソレは、ライン出力用であって、ヘッドフォン端子じゃないという話。ギャフン。

dither云々の指定もしてみたけど。 :

/boot/config.txt に以下を書くと改善するという話も見かけたけど、試しても効果は感じられなかった。
disable_audio_dither=1
おそらく昔は効果があった記述なのではあるまいか…。分からんけど。

参考ページ。 :


*1: 英語圏の記事の中では、「音声の流れ始めと終わる時に勝手にフェードアウトをかけてくるTVも存在する」という話もあるので、それが正しければそのせいかもしれないけど…。

以上です。

過去ログ表示

Prev - 2017/06 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project