Ubuntu Weekly Recipe

第165回Ubuntuでマイクを使う

前回久々に担当したリーダーから、ものすごいネタが披露されました。私としては今回、リーダーができなかった音声認識を実現したいと思いあれこれ試してみたのですが、しかし、どう呼びかけても魔理沙さんは答えてくれません。読者の誰かがきっと実現してくれるに違いないとの希望と共に、筆者は2次元から3次元へと戻る決意をしました。

さて、実は筆者は日本の割と北の方、青森県八戸市に住んでいます。みなさんご存知かと思いますが、八戸は、先日の東北地方太平洋沖地震の影響を受けました。地震による被害はほとんどなかったのですが、その後に来た津波で沿岸部が大きな被害を受けました。幸いなことに、筆者は八戸の中でも内陸に住んでいるため津波の直接的な被害は受けませんでしたが、震災後3日ほど停電が続き、さらにNTT回線や携帯電話通話のパンク、携帯電話のメール送信不能に陥りました。

そんな中で最も役に立ったのは、ラジオとインターネットでした。災害に関する情報はラジオを使い、自分の身の回りの連絡はインターネットを利用しました。ADSL回線は生きていたもののプロバイダのサーバが応答しないために使えませんでしたが、携帯電話のネットワークは3日ほど生きていました[1]⁠。今回は使いませんでしたが、ネットワークが利用できるなら、SkypeやEkigaといったソフトウェアによる通話も便利かなと思いました。

インターネットを介して通話するにしても、ディスプレイの向こうの嫁とキャッキャウフフするにしても、マイクの使用は欠かせません。そこで今回は、マイクからの入力を設定する方法をお届けします。

マイクとフォン端子

市販されているマイクやヘッドフォンは、そのほとんどがフォン端子の3.5mm径プラグ(いわゆるミニプラグ)を採用しています。

図1 3.5mm径フォン端子のプラグ。これは3極のプラグで、アンバランスのステレオ接続あるいはバランスのモノラル接続に用いることができる
図1 3.5mm径フォン端子のプラグ。これは3極のプラグで、アンバランスのステレオ接続あるいはバランスのモノラル接続に用いることができる

そして市販されている大抵のコンピュータの匡体には、この3.5mm径プラグを差し込むためのジャックが入力/出力共に設けられています。このジャックとサウンドデバイスは直結しているため、プラグを差し込むことで、マイクやヘッドフォンとサウンドデバイスが音声の電気信号をやりとりできるようになります。

図2 3.5mm径フォン端子のジャック。ジャックの作りにより、どの極性のプラグを受け入れることができるか決まる
図2 3.5mm径フォン端子のジャック。ジャックの作りにより、どの極性のプラグを受け入れることができるか決まる

なお、このフォン(Phone)端子の形状は、米国のEIA (Electronics Industries Alliance) という業界団体によりEIA-453で規格化されています[2]⁠。3.5mm径の他にも、音響の現場などで標準的に使われている6.3mm(1/4インチ)径のプラグ/ジャック(いわゆる標準プラグ)があります。極性を2つ持つのか、3つ持つのかでモノラル/ステレオあるいはアンバランス/バランスと用途が分かれ、米国のApple社のポータブルオーディオ製品などでは4極3.5mmミニプラグ/ジャックも使われています。極性が同じであれば中を流れる電気信号は同じですので、プラグの形状を変えるだけの簡単なアダプタも市販されています。

図3 各種アダプタ。右から、6.3mm径(標準プラグ)と3.5mm径(ミニプラグ)のアダプタ、RCA端子と6.3mm径(標準プラグ)のアダプタ。左はビデオケーブルなどで用いられるRCA端子。中を流れる電気信号は同じで、2極のアンバランス接続となっている
図3  各種アダプタ。右から、6.3mm径(標準プラグ)と3.5mm径(ミニプラグ)のアダプタ、RCA端子と6.3mm径(標準プラグ)のアダプタ。左はビデオケーブルなどで用いられるRCA端子。中を流れる電気信号は同じで、2極のアンバランス接続となっている

USB接続のマイクも市販されておりますが、こちらを利用する場合はフォン端子を考慮する必要はありません。デバイス自体がサウンドデバイスとして扱われるからです。そのため、何らかの事情によりマザーボードに搭載されているサウンドデバイスが使い物にならない場合などに便利です。

マイクとサウンドデバイスの役割

装置としてのマイクの役割は、空気振動を電気信号に変換することです。空気の振動は微細なので、マイクから取得できる電気信号はとても弱く、そのままでは扱いにくいです。そのため、サウンドデバイス側で増幅した後にサンプリングしてPCMデータに変換します。これにより、音声情報をコンピュータ上で処理できるようになります。

ここで注意してほしいのは、サウンドデバイスでPCMデータに変換できる信号の強さには上限が設けられているということです。もしマイクから送られてくる電気信号を増幅した結果がこの上限を超えていた場合、上限の超過分がカットされます。これをクリッピングと呼びます。クリッピングされた箇所の音声は、再生するとガリガリといった感じで聞こえます。いわゆる「音割れ」です。

このクリッピングを防ぐために、大抵のサウンドデバイスは、電気信号の増幅の程度を調整することが可能です。これを「レベルゲインを調整する」と呼びます。入力レベルゲインの調整方法はサウンドデバイスにより、ハードウェアのつまみで調整するもの、ソフトウェアで調整するものに分けられます。

例えば、本連載の第150回で紹介したCreative EMU 0404 USBはハードウェア本体に付いているつまみで入力レベルゲインを調整します。後述するalsamixerを用いても、ソフトウェアから調整することはできません。

デバイスの入力レベルゲインの調整を行うソフトウェアとして、Firewire接続のサウンドデバイスの場合は本連載の第161回でお伝えしたFFADOミキサーを使います。それではマザーボードに搭載されているサウンドデバイスなど、本連載の第159回でご紹介したUSB/PCIバス/PCI-Expressバス接続のものの場合はどうかというと、alsamixer、サウンドの設定(gnome-volume-control⁠⁠、PulseAudio Volume Control(pavucontrol)などで入力レベルゲインの調整を行います。

alsamixer

alsamixerは、USB/PCIバス/PCI-Expressバス接続のサウンドデバイスのためのミキサーソフトウェアです。起動するには端末で以下を実行します。

$ alsamixer;
図4 alsamixerの画面。上部に基本のキー操作が表示されている
図4 alsamixerの画面。上部に基本のキー操作が表示されている

左右で設定オプションを移動し、オプションの切り替えや数値の変更はテンキーの上下で、オン/オフの切り替えは小なりキー「<」あるいは大なりキー「>」で行います。始めは再生に関するオプションだけ表示されていますが、⁠F4」キーで録音に関するオプションだけ、⁠F5」キーですべてのオプションを表示できます。USB/PCIバス/PCI-Expressバス接続のサウンドデバイスを複数導入している場合は「F6」キーでそれぞれのデバイスに切り替えることができます。⁠Esc」キーで終了します。

alsamixerはサウンドデバイスを制御する上でとても強力なソフトウェアですが、操作画面が少々味気ないです。Ubuntuでは、より見栄え良く操作するためのソフトウェアとして、gnome-alsamixer、alsamixergui、kmix、本連載の第159回で紹介したxfce4-mixerなどが利用できます。これらはまったく同じことをするソフトウェアです。

入力レベルゲインの調整

それでは実際に、デバイスの入力レベルゲインの調整をしてみましょう。

今回はサウンドの設定(gnome-volume-control)を使っていきます。alsamixerやそれに類するソフトウェアを使うのもよいのですが、サウンドの設定あるいはPulseAudio Volume Control(pavucontrol)のほうが操作が簡単です。

まず、本連載の第159回を参考に、⁠サウンドの設定」ウィンドウの「ハードウェア」タブで、使いたいサウンドデバイスのプロファイルを確認してください。⁠Analog Input」を含むプロファイル、例えば「Analog Stereo Input」「Analog Mono Input⁠⁠、⁠Analog Stereo Duplex」を含むプロファイルを選択します。

図5 gnome-volume-controlの「ハードウェア」タブ
図5 gnome-volume-controlの「ハードウェア」タブ

次に、⁠入力」タブへ移ってください。マイクに話しかけると入力レベルのメーターが動きますので、⁠入力の音量」スライダを動かして信号の増幅度合いを指定します。いろいろな目安がありますが、心持ち大声でマイクに話しかけたときにメーターが振り切れない(クリッピングが起こっていない)程度に調整します。

入力が複数あるサウンドデバイスを使っている場合は、プルダウンリスト「コネクター」に選択肢が表示されます。お使いのマイクを挿しているジャックを指定すると、入力レベルが動き出します。

図6 gnome-volume-controlの「入力」タブ
図6 gnome-volume-controlの「入力」タブ

なお、マイクを使うのであれば、どんなデバイスであってもレベルゲインの調整は必要です。そのため、通話だけではなく、レコーディングの際にも同様の操作を行うこととなります。

ソフトウェアの入力ボリューム

ここまででデバイスそのものの入力ゲインレベルを調整する方法を説明しました。PulseAudioではさらに、ソフトウェア別に入力ボリュームの調整もできます。サウンドの設定(gnome-volume-control)であれば「アプリケーション」タブ、PulseAudio Volume Control(pavucontrol)であれば「Recording」タブで行います。

図7 サウンドの設定の「アプリケーション」タブ。音声の入力/出力ともに表示される。筆者の場合、上が音声出力で、下が音声入力でした
図7 サウンドの設定の「アプリケーション」タブ。音声の入力/出力ともに表示される。筆者の場合、上が音声出力で、下が音声入力でした
図8 PulseAudio Volume Controlの「Recording」タブ。音声の入力を扱うソフトウェアが表示される
図8 PulseAudio Volume Controlの「Recording」タブ。音声の入力を扱うソフトウェアが表示される

サウンドの設定は入力と出力を同じ画面に表示するので少々わかりにくいですが、PulseAudio Volume Controlは「Recording」「Playback」タブにわかれているのでわかりやすいです。

図9 PulseAudio Volume Controlの「Playback」タブ。音声を出力するソフトウェアのみ表示される
図9 PulseAudio Volume Controlの「Playback」タブ。音声を出力するソフトウェアのみ表示される

サウンドデバイスからの入力とソフトウェアをつなぐ

USB接続のマイクデバイスを導入すると、複数のサウンドデバイスがひとつのシステムに同居していることになります。この場合は本連載の第159回でお伝えしたように、目的のサウンドデバイスとソフトウェアをつなぐために、サウンドの設定やPulseAudio Volume Controlを使う必要があります。音声入力を処理するソフトウェアでも音声出力を処理するソフトウェア同様、PulseAudioがソフトウェアとサウンドデバイスの仲立ちをします。

さて、音声入出力に際し、SkypeはPulseAudioを直接利用するように作られています[3]が、EkigaはALSAライブラリを利用するように作られています。そのため、PulseAudioではEkigaとサウンドデバイスからの入力をつなぐことができないかもしれないと心配するかもしれませんが、可能です。

本連載の第137回で、音声出力時のALSAサブシステムとPulseAudioの関係を説明しましたが、音声入力時は経路を逆にたどります。つまり、サウンドデバイス→ALSAカーネルモジュール(サウンドドライバ⁠⁠→PulseAudio→ALSAライブラリ→ソフトウェアとなります。ALSAライブラリを利用するEkigaでもこの経路によってSkypeと同様、PulseAudioでその入出力経路を制御できるようになっています。

図10 サウンドの設定の「アプリケーション」タブ。ALSAライブラリを利用するEkigaも、ALSA Plug-inでPulseAudioに入出力ポートを開いている
図10 サウンドの設定の「アプリケーション」タブ。ALSAライブラリを利用するEkigaも、ALSA Plug-inでPulseAudioに入出力ポートを開いている

相手の声が相手に返らないように

これでひととおりの接続が終わったわけですが、通話する場合、自分の音声だけではなく相手の音声も気にしてあげる必要があります。例えば相手の発話をこちら側でスピーカーに出力している場合、こちらで使っているマイクを通じて、相手に相手の発話を返してしまう可能性があります。この結果、相手は自分の発言が少し遅れて耳から入ってくるという、こちらとしては面白い、相手としては心地が良くない状況となってしまいます。

このような場合、出力をスピーカーではなくヘッドフォンにすることで防ぐことができます。市販のヘッドフォンもフォン端子の3.5mm径のもの(ミニプラグ)が一般的で、マイクと同様にプラグに挿し込んで使います。マイクとヘッドフォンが一体となった、ヘッドセットと呼ばれる商品群も便利です。

映像とデータ送信量

SkypeやEkigaは音声と同時に、カメラで取得した映像もやりとりすることができます。しかし、映像は音声以上に大量のデータを送信する他、その処理にもマシンパワーを使うため電源の減りが早まります。緊急時は音声だけやりとりすると処理するデータの量を抑制することができ、財布にもバッテリーにも優しくなります。また帯域への負荷もそれだけ減るので、より多くの人が無理なく同一ネットワークを利用できるでしょう。


八戸市は余震の回数も減り、物流も回復しつつあります。しかし沿岸地域の被害が大きいことを考えると、経済的な損失は大きく、影響は広範囲に及びます。たくさんの人がきちんとした生活を取り戻すには、長い時間がかかるでしょう。義援金のような一時的な支援と、長期的な視野を持ったサービス利用や購買といった消費行動の両輪が、復興フェーズに入った被災地には有効なのかなと思いました。

八戸を含む東日本の沿岸地域に、再び賑わいが戻る事を祈って。

おすすめ記事

記事・ニュース一覧