【今だけ無料！！！】Macでマイクとアプリの音をZoomに拾わせ、かつ同時にそれらの音も聞く方法【ぜひお試しを！！！】

20年前なら釣れたクソみたいなタイトルでPVを減らしていく迷采配。

# テンプレート（免責（初手謝罪））
> Qiitaは、プログラミングに関する知識を記録・共有するためのサービスです。
> [Qiitaとは - Qiita](https://qiita.com/about)

プログラミングとは全く関係のない話です。
<font color="LightGray">~~あとでQiita様に媚び売るから許して~~</font>

# ここで書いていること
- Macでマイクとアプリの音声をZoomなどのオンライン会議システム（以下、会議システム）に入力し、同時にアプリや会議システム側の音声もスピーカ等から聞ける方法
    - 無料のアプリを使います。タイトルで「今だけ」とか書きましたが記事執筆時点で無料期間が設定されているわけではありません。<font color="LightGray">~~タイトル詐欺~~</font>
    - その他ハードウェア（オーディオI/Fなど）は使いません

# 環境
以下は自分の環境ですが、Macならたいてい何でも動くと思います。<font color="LightGray">~~ん？~~</font>

- OS: macOS Big Sur v11.5.2
- 端末: MacBook Air (M1,2020）

# まえがき
オンライン会議などで画面共有することなく複数のソースから音声を同時に入力したくなること、ありませんか？ ありますよね？ <font color="LightGray">~~ありますねぇ！~~</font>
自分の場合はよく会議のタイムキーパーをやることが多いのでベルの音とか入れたくなるのですが、普通会議システムって複数の音声入力には対応していないんですよ。ですので、マイクの音とタイムキーパー用アプリからのベルの音って同時に会議システムに入力できない、という問題が最初に浮上します。

じゃあどうするかっていうと、下の図のように仮想オーディオドライバをインストールして、そこに音声を入出力して、出力を1本に絞ってあげる方法がとられます。
![オーディオ図1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/62f9d57d-470a-ed07-680b-46a87e02fb00.jpeg)
こうすることで、会議システムには音声が1本しか届かないので無事に入力できます。

:::note info
【本稿で紹介する手法 1】
入力も出力もすべてまとめて1つの音声ソースにする方法
:::

<br>
ですがここで問題が。
たくさんの音声たちの音を出力する先は通常一つしか指定できません。例えばすべての音声の出力先を仮想オーディオドライバに設定してしまうと、オンライン会議上での他者の発言も仮想オーディオドライバに流れてしまい、自分の耳には一切入ってきません。他のアプリの音も聞こえません。![オーディオ図2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/e84f279f-6ffc-398e-9b52-e9d854516497.jpeg)

そこでとられる対策が「アプリ別に音声の出力先を変えること」。例えば会議システムだけ出力先をヘッドホンなりスピーカなりに流せば、他の会議参加者の音を拾うことができます。![オーディオ図3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/135651c8-731d-9d65-c881-cf2d27d93736.jpeg)

……と簡単そうに書きましたが、実はMacって標準機能でアプリごとに音声出力先を変更できないんですよね。[Windowsならできるのに（外部サイト）](https://news.mynavi.jp/article/win10tips-588/)。

で、じゃあMacでアプリごとに音声出力先を変えるアプリはあるのか、という話ですが、あるんですよ。イカの通り。一つはタコのアイコンですが。

https://rogueamoeba.com/soundsource/

https://staticz.com/soundcontrol/


しかし残念ながらどちらも有料！　前者は43ドル、後者は25ドル（条件を満たせば40%オフ）。高いんよ……

さて、どうやってこの問題を解決しようか……調べど調べど出てくるのは有料アプリかWindowsの話。<font color="LightGray">~~滅びろWindows。~~</font>調べるの面倒だなぁ〜〜〜〜〜〜〜〜〜

……と、そんな腰は重く財布は軽い皆さまと自分自身のために、無料でこの問題を解決しました！

:::note info
【本稿で紹介する手法 2】
音声の出力先をいい感じに指定する方法
:::
<br>

:::note warn
続きを読むためには会員登録が必要です。<font color="LightGray">（必要とは言っていない）</font>
Qiitaに会員登録して素晴らしいコメントを残しましょう！<font color="LightGray">（媚売り）（伏線回収）</font>
:::

# 事前準備
この問題を解決するためには2種類のアプリのインストールと1つの標準アプリの確認が必要です。
## インストール作業
### 1. 仮想オーディオドライバ
[Soundflower](https://github.com/mattingalls/Soundflower)、[BlackHole](https://existential.audio/blackhole/)、[VB-CABLE](https://vb-audio.com/Cable/)、お好きなものをどうぞ。
自分はBlackHoleをインストールしました。基本的にどれもインストールすれば終わるものばかりで特殊な操作は必要ないはずですが、インストール作業に自信がなければ `『mac (ドライバ名)』` で検索をしてインストール方法を調べてみると良いでしょう。また、SoundflowerはM1非対応らしいので、M1 chip搭載機は避けておいたほうが無難です。

### 2. 音声ミキサ
これも何でもいいですが、自分はLadioCastをインストールしました。野良アプリではないのでMac初心者でも手軽にインストールできると思います。

https://apps.apple.com/jp/app/ladiocast/id411213048

最終更新は2018年10月とそこそこ古いですが、現環境でも動いたのできっと大丈夫でしょう。
ちなみにこのアプリは__インターネットラジオ放送ソフトウェア__という名目ですが、別にネトラジ（死語）（誤用）をするわけではなく、あくまで音声ミキサの役目を果たしてもらいます。

## アプリの確認
### Audio MIDI設定
これ、実はMacの標準アプリです。どこにあるかと言いますと`/System/Applications/Utilities/`です。日本語では`Macintosh HD/アプリケーション/ユーティリティ`ですね。こんなアイコンが目印。
![Audio MIDI設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/fc0d0ac6-feb6-8513-7958-adcc230ce221.png)
<font color="LightGray">~~ところでAppleはいつまでMacintoshって言い方続けるんだろう……~~</font>

# 実践
では実際の操作をしてみましょう。ここでは、マイクの音とアプリケーションの音（＝普通に出力される音。ここでは「画面上の音」と表記します）の2種類の音声ソースを会議システムに渡す、という想定にします。

## 手順1. 音声をまとめる
LadioCastの画面で説明しますが、音声ミキサならどれも同じような操作になると思います。
![LadioCast.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/da272d1a-138a-91f1-9951-f5b00bdbe82a.png)

やることは次の2つです。
1. 入力ソースで__マイク__と__仮想オーディオドライバ__を選択する
（画像では『MacBook Airのマイク』と『BlackHole 2ch』となっています）
2. 出力先に__仮想オーディオドライバ__を選択する（画像では『BlackHole 2ch』となっています）

これで入力も出力も1つの出力にまとめることができました。ね、簡単でしょう？
ただしこのままでは、まだ画面上の音は出力されません。画面上の音は標準出力（ヘッドホンやスピーカ）になっているからです。

## 手順2. 音声を複数先に出力する
ここでMacの『システム環境設定』>『サウンド』に進み、出力先にBlackHoleを指定すれば良さそうですが、そうすると会議システムや他アプリからの音を拾えなくなります。ここでは、__ヘッドホンやスピーカから音を流しつつ、同じ音を仮想オーディオドライバに渡す__方法をとってみます。

まずは『Audio MIDI設定』を開きます。下のような画面が開くと思います。
![Audio MIDI設定1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/392e453f-b5a8-4a1c-63cb-a0d87b6b2d38.jpeg)

そうしたら、画面左下の「＋」ボタンをクリックし、「複数出力装置を作成」を押します。
![Audio MIDI設定2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/af287a17-dfe9-0a10-5297-e9a4865999b5.png)

すると、下記画面のように「複数出力装置」と名前がついたオーディオデバイスが作成されました。左側のカラムで「複数出力装置」をクリックすれば名前も変更できますが、そこはお好みで。この説明ではデフォルトのまま進めます。
![udio MIDI設定3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/27a73b8e-cec1-3056-efa1-0d043f48b376.jpeg)
この画面で、右側には現在出力可能なオーディオデバイスが並んでいるので、ここで出力したい__ヘッドホン（スピーカであれば『MacBook XXXのスピーカー』）__と__仮想オーディオドライバ（ここでは『BlackHole 2ch』）__にチェックを入れます。

以上です。これで、画面上の音が『ヘッドホン／スピーカ』と『仮想オーディオドライバ』に同時に流れるようになりました。

## 手順3. 会議システムの出力先を設定する
まあこれは会議システムの設定を変えるだけです。ここで出力先を適切に設定しないと悲しいことになります。音がハウる（誤）とか。
大手会議システムのZoom、Webex、Google Meetのいずれでも設定ができるので、問題ないでしょう。<font color="LightGray">~~Skype？ 知らんなそんなアプリ~~</font>

設定は単純で、いずれも出力先を__ヘッドホン__または__スピーカ__に変更します。注意点としては出力先に仮想オーディオドライバとか複数出力装置を指定しないこと。やらかすと発話者の声がループして聞こえます。

# ということで完成しました
最終状況はこのような感じです。![オーディオ図4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/b5b0f259-d802-e19a-5ef3-7e7c0da38352.jpeg)

ここまでの操作で何をやったかと言うと、下の通り。
![オーディオ図5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/25e7c7e2-224f-dc46-37ec-7bbac1fa5adb.jpeg)

これで無事、画面共有をしていなくても、マイクやアプリの音を会議システムに送りつつ同時にヘッドホンやスピーカで聞くことができる環境ができました！

# 注意点
## 音量調整が面倒
多分これが一番のデメリット。
標準出力であれば、本来キーボード上で調整できる音量ですが、複数出力装置に音を渡すとキーボードでは音量を調整できなくなり、こんな感じの表示が出ます。![音量1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/6afe905f-3430-e3b3-6a6a-79e0c4cbbb62.jpeg)

音量調整を行うには、『Audio MIDI 設定』を開き、音量を調整したい機器を左カラムから選び、右側の「マスター」のバーをイジる必要があります。（下図の赤枠部）![音量2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/63211b32-1918-47f6-8897-70084af76fd7.jpeg)

## 出力レベルに注意
音量調整と似たようなものですが、仮想オーディオドライバの出力レベルを見誤ると、会議システムを通して相手に音が届かなかったり、爆音を送り届けることになります。
出力レベルの調整は上記同様『Audio MIDI 設定』やミキサアプリから行います。事前に十分テストを行って、適切な音量に設定しておきましょう。

## 画面上のアプリの音はすべて拾われる……
つまり、余計なアプリを立ち上げて音がなってしまったり、~~会議の裏でブラウザゲームをしていたり、ムフフな動画を見ている~~とその音声はすべて会議システムに流れてしまいます。気をつけましょう（1敗）

# おわりに
いかがでしたか？（糞テンプレ）
多少のデメリットはあるものの、お金をかけずにやりたいことができたので自分としては満足しています。
特に自分みたいにタイムキーパーやってる、という人には有効な手立てかと思いますので、ぜひお試しください！

## OBSとの連携
ちなみに自分の環境ではOBSを噛ますとなぜか音が二重に聞こえてしまう現象が発生しています。OBSに音を拾わせていなくてもなぜか同じ現象が発生してしまいどうにもなりませんでした……なんでや工藤。
同じ現象が発生している人は仮想オーディオドライバを2つインストールし、手順1での入力と出力に指定する仮想オーディオドライバを別々にすると解消します（多分）のでお試しを。
手順2では手順1で__入力__に指定したオーディオドライバとヘッドホン／スピーカを複数出力装置として設定してあげてください。

# 余談
![krisp.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68786/d85e8f72-a4b7-0279-3b72-fc8d0144dc54.jpeg)
$\huge{Krispはいいぞ！}$
無料で毎週2時間分、マイクを使う様々なアプリでノイズ除去機能が使えます。

https://jp.vcube.com/form-inquiry-md11-krisp.html

時間無制限のPro版だとIntel CPUのみビデオの背景除去機能（Beta版）も搭載！
<font color="LightGray">~~M1版も対応早よ~~</font>