Macのオーディオ入力をコマンドで一撃で切り替える

● switchaudio-osx

https://github.com/deweller/switchaudio-osx

インストール方法

brew install switchaudio-osx

・オーディオ入力デバイスのuidを調べる

SwitchAudioSource -f json -t input -a

・オーディオ出力デバイスのuidを調べる

SwitchAudioSource -f json -t output -a

toggle_mic.sh

#!/bin/bash

# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title toggle audio
# @raycast.mode fullOutput

# Optional parameters:
# @raycast.icon 🤖

# Documentation:
# @raycast.description オーディオの入力と出力を切り替える

# === デバイスを設定 MacBook (Built-in)===
BUILTIN_NAME="MacBook (Built-in)"
BUILTIN_INPUT_UID="BuiltInMicrophoneDevice"
BUILTIN_OUTPUT_UID="BuiltInSpeakerDevice"

# === デバイスを設定 USB Microphone ===
USB_NAME="USB Microphone"
USB_INPUT_UID="AppleUSBAudioEngine:GeneralPlus:USB Audio Device:132000:2"
USB_OUTPUT_UID="AppleUSBAudioEngine:GeneralPlus:USB Audio Device:132000:1"

# === 切り替え前の現在のデバイス表示 ===
echo "=== BEFORE ==="
CURRENT_INPUT=$(SwitchAudioSource -t input -c)
CURRENT_OUTPUT=$(SwitchAudioSource -t output -c)
echo "Input:  $CURRENT_INPUT"
echo "Output: $CURRENT_OUTPUT"
echo "=== BEFORE ==="
echo ""

# === 現在の入力デバイスUID取得(jq使用) ===
CURRENT_INPUT_UID=$(SwitchAudioSource -t input -c -f json | jq -r '.uid')

echo "Current Input($CURRENT_INPUT_UID)"
echo ""

# === トグルロジック ===
if [[ "$CURRENT_INPUT_UID" == *"$USB_INPUT_UID"* ]]; then
  # USBからBuilt-inへ
  echo "→ Switching to $BUILTIN_NAME..."
  SwitchAudioSource -t input -u "$BUILTIN_INPUT_UID"
  SwitchAudioSource -t output -u "$BUILTIN_OUTPUT_UID"
  echo "● Switched to $BUILTIN_NAME (Mic/Speaker)"
else
  # Built-inからUSBへ
  echo "→ Switching to $USB_NAME..."
  SwitchAudioSource -t input -u "$USB_INPUT_UID"
  SwitchAudioSource -t output -u "$USB_OUTPUT_UID"
  echo "● Switched to $USB_NAME (Input/Output)"
fi

# === 切り替え後の確認 ===
echo ""
echo "=== AFTER ==="
NEW_INPUT=$(SwitchAudioSource -t input -c)
NEW_OUTPUT=$(SwitchAudioSource -t output -c)
echo "✅ Input:  $NEW_INPUT"
echo "✅ Output: $NEW_OUTPUT"
echo "=== AFTER ==="

実行

sh toggle_mic.sh

● Alfred で toggle などの文字入力で実行し実行結果を画面上に表示させるワークフローを作る。

● Raycast で toggle などの文字入力で実行し実行結果を画面上に表示させるスクリプトを作る。

  1. Raycast を開き、Create Script Command を実行する。
  2. 作成されたサンプルスクリプトを削除し、代わりに toggle_microphone.sh を呼び出す内容を書く(もしくは toggle_microphone.sh の中身を直接貼る)。
  3. スクリプトファイルを保存し、そのディレクトリを Raycast の Extensions > Script Commands のディレクトリに追加する。
  4. Raycast を再起動するか、「Reload Script Directories」を実行してスクリプトを読み込ませる。
  5. Script Command の設定で「Name / Title」に「Toggle Microphone」など、「Keyword」に toggle を含めて保存する。

添付ファイル1