Chienomi

LinuxにおけるSkypeとPulseaudioを用いたスプリット/ミキシング

split

  • TOP
  • Old Archives
  • LinuxにおけるSkypeとPulseaudioを用いたスプリット/ミキシング

Skypeに関して

2017-07-01よりSkype Linux (4.3)は利用不可能となった。 ということであるが、実際のところまだ使うことができている。とはいえ、将来的には使えなくなる可能性は高い。

後継となるのがSkype for Linux (5系)である。Skype for LinuxはSkype for WebやSkype for Windwos Desktopに近い、最近のSkypeっぽいUIである。

最近はSkype Linuxの動作が安定しなくなっていたが(チャットの取りこぼし、ビデオのフリーズなど)、Skype for Linuxは動作も安定していて信頼できる。

バージョン2までのSkypeがSkype4Linuxと呼ばれていて、バージョン3でSkype Linuxに変わったということを考えれば、Skype for Linuxという名称に変更されることは混乱を招くものだと感じる。 ただし、現在は他のアプリケーションもSkype for xxxの名称に統一されているため、Skype4Linuxはなかったことにしたほうが美しいのか。

ただし、これに伴ってSkype Call Recorderは利用できなくなった。 これについては、Skype for Linuxでは利用できず、また新規APIが公開されていないため対応もできないと説明がなされている。 API公開がされれば対応する気はありそうだ。

PulseAudioで録音する

Skype Call Recorderが利用できなくなったため、Skypeを録音することができない。

ここで活躍するのがやはりPulseAudioである。 PulseAudioは様々なサウンドコンポーネントのフロントエンドとなるだけでなく、音声ルーティングに関する多彩な機能を持っている。

まずは録音するための仮想sinkを作成する。module-null-sinkによって実デバイスとリンクされていないsinkを作ることができる。

$ pacmd load-module module-null-sink sink_name=MySink           # MySinkというNull Sinkを作る。
$ pacmd update-sink-proplist MySink device.description=MySink   # MySinkの情報をupdate。これでMySinkと表示
$ pacmd load-module module-loopback sink=MySink                 # Monitor of null出力を追加する。やらなくても使えるし、null出力のままだから、不要かもしれない

これでSkypeの音声出力をMySinkとし、Monitor of null出力を録音することで録音自体は可能になるが、それでは通話を自分が聴くことができなくなってしまう。 そこで、Skypeの音声をMySinkと実際の音声デバイスの両方に出力する。これはmodule-combine-sinkによって実現できる。

$ pacmd list-sink                                               # サウンドデバイスの一覧を表示する
$ pacmd load-module module-combine-sink sink_name=combined slaves=alsa_output.pci-0000_00_1b.0.analog-stereo,MySink

sink_nameにはMySink同様sink名を指定し、slaveslist-sinkで得たnameセクションの値をカンマ区切りで指定する。

これによって新たにMySinkcombinedという再生デバイスが得られ、それぞれに対するmonitor出力の録音が可能になる。 virtual sinkを作らずにcombined sinkを作るだけで十分かもしれない。

なお、PulseAudioに関する知識に乏しいため、情報は不十分なものかもしれないことをご了承いただきたい。