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® 하드웨어에 연결된 오디오 입력 장치에서 오디오 데이터를 읽어 들입니다. 블록은 ALSA(Advanced Linux Sound Architecture) 드라이버 프레임워크를 사용하여 오디오 데이터를 읽어 들입니다.

블록은 오디오 데이터를 N×C 행렬로 출력합니다. 여기서 N은 오디오 채널당 샘플 수이고 C는 오디오 장치에서 지원하는 채널 개수입니다. Samples per frame (N) 파라미터와 Number of channels (C) 파라미터에 각각 N 값과 C 값을 지정합니다.

참고

3개 이상의 채널을 지원하는 오디오 장치에 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,100Hz인 경우 블록 샘플 시간은 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에 개발됨