Zao SDK for Jetson / libzao-endpoint API リファレンス 1.1.0.0 (2023-08-17)
Loading...
Searching...
No Matches
ZaoAudioSourceAlsa の使用方法

ALSA が認識する Capture デバイスから音声を取り込み、クラウド側へ音声データを送信 (Source) するサンプルプログラムです。

■ ビルドと導入

ビルド方法にしたがって apps/audio-source-alsa/ でビルドすると ZaoAudioSourceAlsa が得られます。

■ コマンドラインオプション

ZaoAudioSourceAlsa -d <device> [-s <stream_name>] [-p <link-path>] [-v]
  • -d <device> : ALSAデバイス名の指定
    • arecord -L 等で列挙されるPCMデバイス名を指定します。
      • 例: -d plughw:CARD=2
    • このオプションは必須です。
  • -s <stream_name> : ストリーム名の指定
    • 接続するストリームの名前を1つ指定します。
      • embedded : 映像信号に重畳されたエンベッデッド音声として送信します。
      • external : 追加の外部音声として送信します。
    • 省略時は external となります
  • -p <link-path> : 連携用パスの指定
    • ZaoRemoteEndpointとの連携に用いるパスを指定します。
    • 省略時は unix:///run/zao/RemoteEndpoint.sock となります。
  • -v : verbose 指定

■ 自動実行

systemd の zao-audio-source-alsa-embedded.service, zao-audio-source-alsa-external.service から ZaoAudioSinkAlsa が起動されます。 SDK セットアップ直後のデフォルト状態は embedded が有効、external が無効となっています。 設定ユーティリティから Audio Input を Enable/Disable すると embedded について有効化/無効化されます。

各サービスが /etc/zao/AudioSourceAlsa.conf を読み込み ZaoAudioSourceAlsa へオプション指定する形になっています。 設定ユーティリティでのデバイス選択はこの設定ファイルへ反映されます。

■ 手動実行

systemd service としてではなくターミナルから直接実行する場合についてです。

  • zao group に属しているアカウントから実行する必要があります
  • ZaoAudioSourceAlsa 自身は /etc/zao/AudioSourceAlsa.conf を参照しませんので、コマンドラインオプションでデバイス指定等を行う必要があります
  • 取り込みと送信を止めるにはCtrl-Cを入力します

■ 制限事項

  • 選択する Capture デバイスは、サンプリングレート 48kHz かつステレオ入力に対応している必要があります。