エンジニアらしき人のひとりごと

100人中100人は興味を示さなくても、100万人居たら1人くらいは面白いと思ってくれそうな、重箱の隅をほじくってみるブログ。

黒電話をスマホの子機(Bluetoothヘッドセット)に!③

②の続き。
ラズパイ(Raspberry Pi)を使って、黒電話をスマホのヘッドセットにしようと工作してます。
tokieng.hatenablog.com
tokieng.hatenablog.com

PulseAudioのインストール

今回は、バージョン10をインストールしてみる。
なぜ10なのかは、前回の記事を参照のこと。

apt-getコマンドでインストールできるバイナリは公開されていないので、Linux(UNIX)らしくソースコードをダウンロードして、自分でビルドする必要がある。
ちなみに、以下のやり方で必ずうまくいく、というわけではない(メモ片手に書いてるだけで、あんまりちゃんと確認してない)ので、ご注意を。

ビルド

ここで公開されている。
https://www.freedesktop.org/wiki/Software/PulseAudio/

News
Jan 2017
2017-01-19: PulseAudio 10.0 has been released. (Changes)
1) ソースコードを持ってくる。tar.xz形式で圧縮されているので、展開する。
$ wget https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-10.0.tar.xz
$ tar xf pulseaudio-10.0.tar.xz
$ cd pulseaudo-10.0

※念のため書いておくと、最初の "$" は、シェルのプロンプトを表すので入力しないこと。

2) 必要なライブラリをインストールする
$ sudo apt install libtool intltool libcap-dev libsndfile1-dev libspeexdsp-dev libsbc-dev libcap-dev libssl-dev libasound2-dev libsamplerate0-dev liborc-0.4-dev libwebrtc-audio-processing-dev
3) いよいよビルド
$ ./bootstrap.sh ←いらないかも?
$ ./configure --sysconfdir=/etc --localstatedir=/var --disable-bluez4
$ make -j 4

makeコマンドに "-j 4" をつけると、ラズパイ2とかラズパイ3では、ビルドが少し早くなる。
エラーが出たら、必要なライブラリがないとかが原因なので、なんとかして解決する。

4) 既にインストールされているものを削除する

既にPulseAudioがインストールされている状態なので、インストール済みのものを消す。入っているものを探してみた。

$ apt list --installed | grep pulse

そしたら以下のものが出てきた。

libpulse-mainloop-glib0/stable,now 5.0-13 armhf [インストール済み、自動]
libpulse0/stable,now 5.0-13 armhf [インストール済み、自動]
libpulsedsp/stable,now 5.0-13 armhf [インストール済み、自動]
pulseaudio/stable,now 5.0-13 armhf [インストール済み、自動]
pulseaudio-module-bluetooth/stable,now 5.0-13 armhf [インストール済み]
pulseaudio-module-x11/stable,now 5.0-13 armhf [インストール済み、自動]
pulseaudio-utils/stable,now 5.0-13 armhf [インストール済み、自動]

あと、pavucontrolも。

ひたすら消す。
あ、libpulse0 は、消そうとするといろんなものがついでに消されてしまうので、とりあえず残しておいた。

$ sudo apt-get remove libpulse-mainloop-glib0 libpulsedsp pulseaudio pulseaudio-module-bluetooth pulseaudio-module-x11 pulseaudio-utils pavucontrol
5) インストールする
$ make install

起動してみる

PulseAudioをデーモン起動させる。
初期状態では時々勝手にPulseAudioが終了してしまうので、
/etc/pulse/daemon.conf に、
 exit-idle-time = -1
を追記しておく。

$ pulseaudio -D

"-D" をつけることで、デーモンとして起動する。(バックグランドで起動しつづけている)

起動に成功しているかどうかを確認する。数秒経ってから、以下を実行する。

$ ps aux|grep pulseaudio
  • PulseAudioが起動しているとき
$ ps aux|grep pulseaudio
pi        1044  0.4  1.9 109148  8448 ?        S<l  07:43   0:01 pulseaudio -D
pi        1069  0.0  0.4   3768  2036 pts/0    S+   07:49   0:00 grep --color=auto pulseaudio
# ↑pulseaudioのプロセス(1行目)が出力されているので、PulseAudioは起動中
$
  • PulseAudioが起動していないとき
% ps aux|grep pulseaudio
pi        1085  0.0  0.4   3768  2036 pts/0    S+   07:49   0:00 grep --color=auto pulseaudio
$ # ↑PulseAudioのプロセスが出力されず、grepのプロセスのみ出力されているので、PulseAudioは起動していない

ちなみに、PulseAudioデーモンを停止させるには、以下のコマンドを実行する。

$ pulseaudio -k

動作確認

まず、USBオーディオの設定

USBオーディオ変換ケーブルをラズパイに差している状態では、ラズパイからの音声出力先として、以下の3つが存在することになる。

  • 本体内蔵のHDMI端子から
  • 本体内蔵のアナログ出力端子(ヘッドフォン端子)から
  • USBに接続したオーディオ変換ケーブル出力端子から

なので、どこから出力するかを指定する必要がある。
どうやってやるのか忘れたw(おいおい)
思い出したら、追記しよう・・・。

音を鳴らしてみる。wavファイルが入っているので、それをpaplayコマンドで鳴らす。

$ paplay /usr/share/sounds/alsa/Front_Center.wav

音が鳴らなかったら、オーディオ出力先を再度確認するとともに、PulseAudioが起動中であることを確認すること。

スマホとラズパイをペアリングして、スマホの音を鳴らす

スマホもラズパイ(USB Bluetoothドングル)も、BluetoothA2DPに対応している(はず)なので、スマホで音楽を再生してみる。
A2DPは、音楽などをヘッドフォンで鳴らすためのプロファイル。

まずはスマホとラズパイをペアリングする。
GUIで操作してもよいが、ここではbluetoothctlを使ってみる。

$ bluetoothctl
[bluetooth]#

このときに、bluetoothctlのコマンドを入力する。どんなコマンドがあるかは、helpコマンド。

[bluetooth]# help

では早速、ペアリングしてみる。

[bluetoothctl]# discoverable on
[bluetoothctl]# pairable on
# ラズパイをペアリング可能なモードにする。
# ここでスマホのBluetooth設定画面に、ラズパイが出てくるはず。
# その画面で、ラズパイを選択すると、ラズパイ側では以下のような出力がされる。
[NEW] Device XX:XX:XX:XX:XX:XX Xperia XZ
# ↑ ラズパイがスマホ(ここではXperia XZ)を見つけた。
# XX:XX:XX:XX:XX:XX は、スマホのBluetoothアドレスなので、コピーしておく。
# ラズパイに「このデバイスと接続してもよいよ、信用して!」と伝えるために、以下のコマンドを実行する。
# (XX:XX:XX:XX:XX:XXの部分は、実際には上で検出された実際のBluetoothアドレスを入力する。さきほどコピーしたのをペーストする。
[bluetoothctl]# trust XX:XX:XX:XX:XX:XX
# うまくいくと、下の2行が表示される。
[CHG] Device XX:XX:XX:XX:XX:XX Trusted: yes
Changing XX:XX:XX:XX:XX:XX trust succeeded

Androidの場合は、以下のようになっていればよい。
f:id:tokieng:20170913224521p:plain
もし「メディアの音声」が表示されないときは、PulseAudioが起動中かどうかを確認して、再度試してみる。

ofonoのインストール

apt-getでは、ofono-devでもAPI入らないっぽい?
ということで、 ofono も buildする。

ビルド

# 1) まず必要なライブラリをインストール
$ sudo apt install libudev-dev libdbus-glib-1-dev mobile-broadband-provider-info
# 2) ソースコードを持ってくる。tar.xz形式で圧縮されているので、展開する。
$ wget https://www.kernel.org/pub/linux/network/ofono/ofono-1.20.tar.xz
$ tar xz ofono-1.20.tar.xz
# 3) 展開先に移動して、ビルド実行
$ cd ofono-1.20
$ ./configure --sysconfdir=/etc --localstatedir=/var --enable-test --enable-tools
$ make -j 4
# 4) うまくいったらインストール
$ sudo make install
# 5) サービスとして自動起動するように設定する
$ sudo systemctl enable ofono
$ sudo systemctl start ofono

ちなみに、configureコマンドのオプションに --enable-test を入れているのは、動作確認用のスクリプトもインストールしておきたいので。

PulseAudioの設定

ofonoを使うよ、とPulseAudioに伝える必要がある。
/etc/pulse/default.pa の以下の行を書き換える。
load-module module-bluetooth-discover
 ↓
load-module module-bluetooth-discover headset=ofono

書き換えたら、PulseAudioを停止させて、再度起動させる。

ofonoの動作確認

先ほどのインストール手順で、動作確認用のスクリプトもインストールしておいた。このスクリプトは /usr/local/lib/ofono/test/ に存在する。
このスクリプトはPython3で記述されていて、いくつかのライブラリが必要なので、まずそれらをインストールする。

$ sudo pip3 install dbus-python
  • /usr/local/lib/ofono/test/monitor-ofono
  • /usr/local/lib/ofono/test/dial-number
  • /usr/local/lib/ofono/test/answer-calls

monitor-ofonoは、Bluetoothのイベントを表示するもの。このスクリプトを実行すると、スマホの着信や発信などのイベントが表示される。
dial-numberは、スマホに発信させるスクリプト。例えば「117」(時報)とか「03177」(東京地方の天気予報)とかにかけてみる。
answer-callsは、スマホにかかってきた電話を取るスクリプト

うまくいけば、dial-number、answer-callsを使って、スマホでの発信・着信操作が行える。通話状態になったら、ラズパイのUSBオーディオ変換ケーブルに差したマイク・スピーカーを使って、会話ができる。

次回予告

うまくいったら、次はいよいよ黒電話の改造だ!



ちなみに、本シリーズの記事一覧はこちらからどうぞ!
tokieng.hatenablog.com

黒電話をスマホの子機(Bluetoothヘッドセット)に!②

黒電話をスマホのヘッドセットにする工作。
①のつづきです。前回はこちら。
tokieng.hatenablog.com


黒電話といえばダイヤルとベルだけど、まずは準備から・・・。

Raspberry Pi(以下ラズパイ)を、Bluetoothハンズフリー機器としてスマホと接続できるようにした。
f:id:tokieng:20170805180215j:plain

ラズパイをBluetoothハンズフリー機器にする

Bluetoothハンズフリー機器とは

Bluetoothハンズフリー機器とは、
1)イヤホン
2)マイク
3)着信(電話を受ける)
4)発信(電話をかける)
の4つの機能を備えたものをいう(ことにする)。

そもそもBluetoothは通信方式であって、その通信路を使ってどのような機能を実現するかは、「プロファイル」という形で規定している。
たとえば、ノートPCにBluetooth無線マウスを接続して使うことができる。これは、HIP(Human Interface Profile)というプロファイルが規定してあって、ノートPCとマウスの両方がHIPの機能を持っているためだ。

で、ハンズフリーの場合はどんなプロファイルかというと、HFP(Hands Free Profile)がそれにあたる。

Bluetooth内蔵のスマホHFPに対応しているので、あとはラズパイ側にもHFPの機能を持たせればよい。
まずはそこから作っていくことにした。

HFPのメモ

で試行錯誤していたら、やっぱりHFPの仕様を知らないと困ることが出てきた。
調べたら、仕様書があった(英語だけど)。
https://www.bluetooth.com/specifications/adopted-specifications

いろんな単語が出てくるので、キーワードをメモしておくと、
主な登場人物としては、この2人。

  • AG = Audio Gateway = 電話機
  • HF = Hands-Free unit = ヘッドセットとか

この2人の通信をサポートするのが、以下の方々。

  • HCI = Host Controller Interface
  • GAP = Generic Access Profile
  • SPP = Serial Port Profile
  • RFCOMM = RS-232Cをエミュレートするもの。

RFCOMMでつないだ後、ATコマンドを送るみたい。
RS-232Cを介してATコマンド、というあたりが、昔のアナログモデムっぽい。
参考になるのは、以下の章を中心に読むとよいと思う。
> 4.10 Transfer of Call, Call Setup, and Held Call Status

ちなみに、HFPとよく似たのに、HSP(Hands Free Profile)というものがある。
普通のBluetoothイヤホンマイクは「イヤホン」「マイク」「電話を取るためのボタン」「ボリューム調整」という機能を持っているが、HSPはまさにそれを実現するためのプロファイル。HSPは、スマホとイヤホンマイク間で「双方向の音声」「ボタンが押されたという通知」「ボリュームの上げ下げ調整」を行う程度の機能しかない。
HFPは、HSPのゴージャス版という感じ。

ラズパイにHFP機能を持たせる

以下のソフトウェアが必要となる。

  • BlueZ
  • oFono
  • PulseAudio

ここでは、これらを簡単に紹介する。

BlueZ

ラズパイ(というかLinux)でBluetooth機能を利用するには、BlueZというソフトが必須。BlueZは、Bluetooth機能全般を司るソフトで、いくつかのプロファイルを実装している。
以前はBlueZ単体でHFPをサポートしていたが、今ではoFonoというソフトがあるので、BlueZ(バージョン5以降)からHFP機能は削除されているという。
http://www.bluez.org/release-of-bluez-5-0/

Remove internal support for telephony (HFP and HSP) profiles. They should be implemented using the new Profile interface preferably by the telephony subsystem of choice (e.g. oFono which already supports this)

Raspbian(2017年7月時点)にインストールされているBlueZは、バージョン5だった。ということでHFP機能は無く、oFonoが必要になる。

oFono

電話関係の制御をするソフトウェア。つまりHFP機能を実装したもの。
Raspbianには入っていないので、手動でビルドしてインストールが必要。

PulseAudio

そしてPulseAudio。これは、ラズパイの音声全般をコントロールするソフトで、ここでは相手からの音声をスピーカーで鳴らしたり、相手に伝える音声をマイクから拾うために使う。

Raspbian(2017年7月時点)でインストールされているPulseAudioは、バージョン5.0。
しかしバージョン5は、HFPをサポートしていない(お前もかよ・・・)。
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/5.0/

So what's the way forward with getting the HSP and HFP profiles work with BlueZ 5? There is partial support for those in oFono (a telephony daemon), which will hopefully be completed soon, and the next PulseAudio release will then hopefully support HSP/HFP through oFono. This pulls in a telephony stack as a dependency for using your Bluetooth headset, which might be considered overkill. This issue is yet to be resolved with the BlueZ developers.

要約すると、

  • BlueZ 5 support (A2DP only)
  • だって BlueZ5がHSP/HFPサポートやめたから。
  • 次のPulseAudioのリリースでは、oFonoを経由したHSP/HFPのサポートをするよ。

ふむ、別のバージョンをビルドしてインストールしないといけないのか・・・。

で、バージョン6。
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/6.0/

BlueZ 5 HFP (hands-free) profile support via oFono
 The oFono HFP backend for BlueZ 5 naturally introduces a runtime dependency on oFono. The minimum supported oFono version is 1.13.

インストール条件は oFono >= 1.13

バージョン7~9には、BT関連のトピックなし。

バージョン10では、
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/10.0/

 Automatically switch Bluetooth profile when using VoIP applications
 Separate volumes for Bluetooth A2DP and HSP profiles

よく分からんが、きっとあると便利な機能が入ったんだろうな(笑)。

11にも、HFP関連のネタがいっぱいある。
https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/
が、今回の工作時点では、まだ開発中っぽかった。

ということで、PulseAudioは、10のビルドを試みてみる。

長くなったので、次の記事では、PulseAudioとoFonoのインストールを行ってみる。③に続く。



ちなみに、本シリーズの記事一覧はこちらからどうぞ!
tokieng.hatenablog.com

黒電話をスマホの子機(Bluetoothヘッドセット)に!①

黒電話

ひょんなことから、黒電話をプレゼントされた(ふつうこんなの贈らないw)。
黒電話とは、電話を掛けるときにダイヤルをじーこ・じーこ・・・と廻すやつで、着信するとリーン・リーンする、黒いあれ。
f:id:tokieng:20150609203450j:plain
ということで、これをスマホの子機(ヘッドセット)に加工することにした。

ひっくり返すと裏に600-A2と刻印されている。600-A2型の黒電話だった。
うっすらと "76" という数字も見える。これは1976年製造の印。お、私よりも年上だ!
f:id:tokieng:20150609203736j:plain

で、ヘッドセットとして持たせたい機能は、以下の4つ。

  • ダイヤルで発信
  • 着信したらベルを鳴らし、受話器を取ったら応答する
  • 受話器のスピーカーから音が聞こえる
  • 受話器のマイクを使って、音を伝える

手元に、暇を持て余しているRaspberry Piが転がっていたので、それを使うことにした。

やりたいことを図にしてみた。
まず、普通にスマホ単体を使って通話するときの図が以下で、
f:id:tokieng:20170805180129j:plain
このスマホにイヤホンマイクを繋いだ場合が、以下の図で、
f:id:tokieng:20170805180150j:plain
さらに、このイヤホンマイクをラズパイ+黒電話に置き換えた以下の図が、今回の作りたいものになる。
f:id:tokieng:20170805180215j:plain

用意するもの

というわけで、以下の4つを用意した。

Raspberry Piは、側面の端子に音声出力はあるものの音声入力がないので、USBオーディオ変換ケーブルというものを使った。
本当は、Wi-FiBluetoothも内蔵しているRaspberry Pi3を使うのが楽なんだろうけど、単に持ってないので今回は使ってない(^^;

以下の手順で、工作を行うことにした。

  • ラズパイをBluetoothハンズフリー機器にする
  • 黒電話のダイヤルなどをラズパイの入力として使う
  • ラズパイから黒電話のベルを鳴らす

で、作ってみた。

いやー長かった。この苦労は次回以降のブログネタとして、とりあえず完成動画を。

ダイヤル廻すと、発信します。東京地方の天気予報(03-177)を聞いてみます。
画面左下のスマホの画面にもご注目!

黒電話(600-A2型)で発信 - ダイヤル廻して発信
ちゃんと受話器から音も聞こえるよ!

そして、スマホに電話をかけると、黒電話のベルが鳴ります。
受話器を取ったら、ちゃんとベルが止まります。

黒電話(600-A2型)で着信 - スマホに着信するとベルが鳴ります
え?ベルの鳴り方がちょっと違う?気づいたあなたは鋭い!
ちょっと回路に手を抜いたためにベルを鳴らすパワーが十分に得られなかったため、ちょっとごまかしてます(苦笑)。

f:id:tokieng:20170910162549j:plain

作るにあたっていろんなことを調べたり試行錯誤したので、せっかくなので作り方のメモを書こうと思います。次回に続く。



ちなみに、本シリーズの記事一覧はこちらからどうぞ!
tokieng.hatenablog.com

オートザム キャロルの写真 (エンジンルーム)

キャロル(マツダ オートザム キャロル AA6PA)の写真第2弾です。

ボンネットを開けて、エンジンルームを撮影しました。資料の意味でアップします。

 

第1弾(外観)は、こちら。

 

tokieng.hatenablog.com

 

 

マツダ オートザム キャロル(AA6PA) エンジンルーム

マツダ オートザム キャロル(AA6PA)  ボンネット裏全体

マツダ オートザム キャロル(AA6PA)  ボンネット裏1

マツダ オートザム キャロル(AA6PA)  ボンネット裏2

マツダ オートザム キャロル(AA6PA)  ボンネット裏3

マツダ オートザム キャロル(AA6PA)  ボンネット裏4

マツダ オートザム キャロル(AA6PA) エンジンルーム

マツダ オートザム キャロル(AA6PA) エンジンルーム

マツダ オートザム キャロル(AA6PA) エンジンルーム

販売はオートザム株式会社でしたが、ここでの表記は「マツダ株式会社」ですね。

オートザム キャロルの写真

キャロルの写真

唐突ですが、キャロルの写真をアップします。

マツダ オートザム キャロル。平成6年式 AA6PA型。キャロルの2代目(後期型)です。

くりっとした丸いボディ。丸い目。かわいい。

 

長年乗っていましたが、廃車(?)とするので、その記念にと撮ったものです。

 

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

キャロル AAP6A オートザム マツダ

 

 

 

ナンバープレートもそのまま載せていますが、もうこの番号の車は、無いのです。ありがとう、私のキャロルくん。

もしかしたら、ほかの番号でまだどこかを走っているかも・・・

ひかり電話ルーター という名の SIPサーバ

NTTのひかり電話を契約しているフレッツ光ユーザーは、「ひかり電話ルーター」をレンタルします。私は、RV-S340(以下、ルーター)を借りています(VDSL回線用ですね)。このルーターSIP機能に関するメモです。日曜プログラマ向け。

 

pjsipでSIPクライアントを作るときに注意すること

REGISTERは、すんなり成功します。

が、発信のためにINVITE(w/SDP)を送信すると、488応答で拒否されてしまいます。488応答ということは、SDPを許容できないとルーターが判断したことを意味します。同様に、着信時に200OK(w/SDP)を返信すると、やはりルーターはSDPを拒否します。

ということで、pjsipのSDPに関する挙動を変更する必要があります。コード変更するの面倒・・・と悩んでいたら、先人のいい情報見つけました。

最新のpjsua単体でひかり電話の発着信ができない - IGINブルネイ/syasudaの日記(MT版)

つまり、pjsip/include/pjsua-lib/pjsua.h の

#   define PJSUA_SDP_SESS_HAS_CONN    0

 ↓

#   define PJSUA_SDP_SESS_HAS_CONN    1

として、makeするとよいです。

 

公衆電話からの着信

Fromヘッダは、

From:"Coin line/payphone"<sip:anonymous@anonymous.invalid>;tag=hogehoge

のようになります。anonymous@anonymous.invalidは、非通知を表します。公衆電話からの発信なので非通知だよ、ということを表すために、 "Coin line/payphone" をつけているんでしょうね。

 

さいごに

「収容」の説明を探していて、面白いページを見つけたので、ご紹介。

www.ntt-east.co.jp

ASUS ZenPad 8.0(Z380M)に搭載されている、DTS Headphone:Xという技術

※2016/07/24 一部修正しました

 

ASUS ZenPad 8.0(Z380M)には、DTS Headphone:X というのが搭載されています。

これ、何?

これは、ざっくり書くと「普通のヘッドホン(左右の2ch)で、まるで前後左右のスピーカーに囲まれているかのような、最大11.1chのサウンドが楽しめる」という技術です。
詳しくは、以下の記事をご覧ください。
本ページは、これらの記事などを私なりに解釈してまとめたものです。
 
この「普通のヘッドホンで」というのがポイントで、普通の5.1chや7.1chの音声データに特殊な処理を施すことで、まるでスピーカーに囲まれて音を聴いているかのように錯覚させる音を、ヘッドホン(左右2つのスピーカー)から鳴らすというものです。
 
ちなみに、ブルーレイ(BD)のソフトの一部では、DTS Headphone:Xの音声データも入っています。 
他の方のブログですが、どう感じるかは人それぞれのようですね。
 
で、普通でないヘッドホンとは、例えば下の機種のような、ヘッドホンが7.1chの音声データを受け取って、その内部で特殊な処理を行って音を鳴らすタイプのことでしょう。
SONY 7.1chデジタルサラウンドヘッドホンシステム MDR-DS7500

SONY 7.1chデジタルサラウンドヘッドホンシステム MDR-DS7500

 
パナソニック 密閉型ワイヤレスヘッドホン ブラック RP-WF7-K

パナソニック 密閉型ワイヤレスヘッドホン ブラック RP-WF7-K

 
安くても15,000円を超えるようで、(私にとっては)なかなか高価なお値段です。
ということで、「DTS Headphone:X」では、普通の安価なヘッドホンでも、耳元ではなく、まるで実際に複数台のスピーカーから音が鳴っているかのように聞こえるようにする、ということが目的です。
さらに、その仮想的なスピーカーの位置を自由に変える(ようにデータ処理する)ことで、より自由な音を再現させることができます。
 
一応、「DTS Headphone:X対応」を謳っているヘッドフォンもあります。

これは、「普通のヘッドホンだけど、音の位置をより再現できるようにチューニングしている」ということです。

体験!

Z380Mでなくても、他のAndroidでも、iPhoneでも、この技術の効果を体験することができます。
以下のサイトのアプリ「Music Live」を使います。
インストール後、アプリを起動して左上の歯車アイコンで設定を開きます。一番上の「サウンドチャンネルチェック」は、前方左右・真横・後方左右に置かれたスピーカーからの音を再現した音が流れます。そしてその下の「DEMO MUSIC」では、サンプル曲が流れます。手拍子とか、ハッとするかも。それ以外は、購入が必要な曲です。
 
それらしく聞こえたでしょうか?
耳に挿入するタイプ(カナル型)のヘッドホンよりも、耳を覆うタイプのヘッドホンの方が分かりやすいかも?
私は、前方左右と真横の違いは感じましたが、後方のは分からなかったかな…。耳かヘッドホンが悪い?電器屋でRP-HX550使って聞いてみたら、なんとなく分かったので、ヘッドホンによる差もあるようです。
 
なぜ普通の(DTS Headphone:Xに対応していると謳っていない)スマホでもこの技術が体験できるかというと、いま鳴らした音声データには動画を作るときに「特殊な処理」を施していることと、(おそらく)アプリでその音声データにさらなる処理をしているからです。
 
DTS Headphone:Xの音声を出力するアプリは、今のところ「Music Live」しか見あたりません。ということで、他のスマホタブレットでは、このアプリで提供する音声しか、DTS Headphone:Xによる7.1chサラウンドが体験できない、ということになります。ちょっと物足りないですね…。
 
そして、Z380MにはDTS Headphone:X が搭載されている、と謳われています。
英語版のASUSのサイト(We'll be back.)には、こう書かれています。
DTS Headphone: X delivers a full 7.1-channel virtual surround sound experience, making all content sound better over any headphones.

つまり、Z380Mのヘッドホン端子から出る音は、全て「DTS Headphone:X」の特殊な処理が施されている、ということのようです(只今問い合わせ中)。

全ての音声に処理されるのなら、思う存分7.1chの音声や映画を楽しめますね!7.1chの音声や動画って、どこにあるんだろう?

(2016/07/24 削除しました)

ASUSに問い合わせたところ、「DTS Headphone:Xのコンテンツでないとダメ」なのだそう。じゃあ、対応と謳ってない他の機種と、どう違うの??というところですね。 

謎は深まるばかりです。取り急ぎ、更新まで。