Main Content

ALSA Audio Capture

ALSA を使用してサウンド カードからオーディオを取得する

R2021a 以降

アドオンが必要: この機能には MATLAB Coder Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms アドオンが必要です。

  • NVIDIA ALSA audio capture block

ライブラリ:
NVIDIA Jetson and NVIDIA DRIVE / Audio and Video

説明

ALSA Audio Capture ブロックは、NVIDIA® ハードウェアに接続されたオーディオ入力デバイスからオーディオ データを読み取ります。このブロックは、Advanced Linux Sound Architecture (ALSA) ドライバー フレームワークを使用してオーディオ データを読み取ります。

このブロックは、オーディオ データを N 行 C 列の行列として出力します。ここで、N はオーディオ チャネルあたりのサンプル数であり、C はオーディオ デバイスでサポートされているチャネルの数です。[Samples per frame (N)] パラメーターと [Number of channels (C)] パラメーターに N と C の値をそれぞれ指定します。

メモ

2 つを超えるチャネルをサポートするオーディオ デバイスで ALSA Audio Capture ブロックを使用するには、Audio Toolbox™ のライセンスが必要です。

アルゴリズム

ALSA Audio Capture ブロックと ALSA Audio Playback ブロックを含む Simulink® モデルについて検討します。各サンプル時間で、ALSA Audio Capture はハードウェアのオーディオ入力コネクタに接続されたマイクからステレオ オーディオ データを読み取ります。ブロックはデータを 3 行 2 列の行列として出力します。ALSA Audio Playback ブロックはオーディオの行列を受け入れ、ハードウェアのオーディオ出力ジャックに接続されているヘッドフォンにオーディオを送信します。

Sample workflow diagram for the audio blocks

ALSA Audio Capture ブロックは、オーディオ チャネルあたりのサンプル数 (N) とサンプリング周波数 (Fs) からサンプル時間 (Ts) を決定します。

Ts = N / Fs

たとえば、N が 4410 サンプル、Fs が 44,100 Hz の場合、ブロックのサンプル時間は 4410/44,100 = 0.1 秒です。

N は [Number of channels (C)] パラメーターで指定されたオーディオ チャネルあたりのサンプル数です。Fs は、[Audio sampling frequency (Hz)] パラメーターで指定されたオーディオ データのサンプリング周波数です。

端子

出力

すべて展開する

このブロックは、オーディオ データを N 行 C 列の行列として出力します。ここで、N はチャネルあたりのサンプル数であり、C はオーディオでサポートされているチャネルの数です。[Samples per frame (N)] パラメーターと [Number of channels (C)] パラメーターに N と C の値をそれぞれ指定します。

たとえば、チャネルあたりのサンプル数が 3 であるステレオ オーディオ ソース ファイルの場合、ブロックはオーディオ データを 3 行 2 列の行列に編成します。

Block diagram show data layout from ALSA audio capture block

出力行列のデータ型は、[Device Bit depth] パラメーターで指定された型です。

データ型: int8 | int16 | int32

パラメーター

すべて展開する

ブロックがオーディオ データを読み取る対象である、ハードウェアに接続されている ALSA オーディオ入力デバイスを指定します。

ハードウェアに接続されている ALSA オーディオ入力デバイスからオーディオを受信できます。ハードウェアに接続されているオーディオ入力デバイスのリストを取得するには、List Available ALSA Audio Input Devicesで説明されているように、関数 listAudioDevices を使用します。

プログラムでの使用

ブロック パラメーター: deviceStr
型: 文字ベクトル
値: valid name|
既定の設定: 'hw:1,0'

アナログからデジタルへの変換を実行する前に、オーディオ データはこのパラメーターで指定されたデータ型にキャストされます。

プログラムでの使用

ブロック パラメーター: DataBitDepth
型: 文字ベクトル
値: '16-bit integer'|'8-bit integer''32-bit integer'
既定の設定: '16-bit integer'

オーディオ入力デバイスでサポートされているチャネル数を確認するには、List Available ALSA Audio Input Devicesで説明されているように関数 listAudioDevices を使用します。

プログラムでの使用

ブロック パラメーター: numberofChannels
型: 文字ベクトル
値: 正の整数
既定の設定: '2'

オーディオ入力デバイスがオーディオ データを読み取るために使用するサンプル レートを Hz 単位で指定します。[Audio sampling frequency (Hz)] パラメーターにリストされるサンプル レートは、オーディオ入力デバイスによって異なります。オーディオ入力デバイスでサポートされているサンプル レートを確認するには、List Available ALSA Audio Input Devicesで説明されているように関数 listAudioDevices を使用します。

プログラムでの使用

ブロック パラメーター: sampleRateEnum
型: 文字ベクトル
値: 正の整数
既定の設定: '44100'

このパラメーターは、ブロックが出力する出力行列の行数を指定します。出力行列の次元は N 行 C 列です。ここで、N はチャネルあたりのサンプル数、C はチャネル数です。

プログラムでの使用

ブロック パラメーター: frameSize
型: 文字ベクトル
値: 正の整数
既定の設定: '4410'

バージョン履歴

R2021a で導入