모바일 기기의 마이크에서 오디오 데이터 수집하기
이 예제에서는 MATLAB®에서 모바일 기기의 마이크에 연결하고 오디오 신호를 수집하는 방법을 보여줍니다. MathWorks 계정에 로그인된 상태에서 이 예제의 MATLAB 코드를 사용하여 다음 중 하나에서 수집된 오디오 데이터에 액세스할 수 있습니다.
동일한 기기에서 실행 중인 MATLAB Mobile™
다른 기기에서 실행 중인 MATLAB Mobile
MATLAB Online™
MATLAB Support Package for Android® Sensors 애드온이 설치된 데스크탑 또는 랩탑 컴퓨터의 MATLAB
모바일 기기 설정하기
모바일 기기에 MATLAB Mobile을 설치하고 설정합니다. 그런 다음 MATLAB Mobile 설정 메뉴에서 MathWorks® Cloud에 로그인합니다. 이 단계에 대한 자세한 내용은 기기에 MATLAB Mobile 설치하기 및 클라우드에 로그인하기 항목을 참조하십시오.
기기에서 MATLAB Mobile을 시작합니다.
기기에서 마이크 액세스 활성화하기
메뉴를 누른 후 센서를 선택합니다.
센서 설정 섹션에서 더 보기를 누른 다음 MATLAB 원격 액세스 섹션에서 센서 액세스를 켭니다. 확인을 눌러 액세스를 확인합니다. 그러면 기기 센서에 프로그래밍 방식으로 액세스할 수 있습니다.
이제 마이크 액세스 스위치를 사용할 수 있습니다. 이 스위치를 켜고 확인을 눌러 액세스를 확인합니다. 그러면 원격 마이크 액세스에 대한 권한이 부여됩니다.
센서 설정으로 돌아가서 스트리밍 위치:를 누르고
MATLAB
을 선택합니다.그런 다음 마이크 액세스를 켭니다. 그러면 오디오 입력을 받을 수 있도록 마이크가 켜집니다.
이제부터는 실시간으로 변하는 레벨 막대를 통해 마이크에 소리가 수신되고 있음을 알 수 있습니다. 기기의 마이크는 이제 MATLAB 세션으로 스트리밍하기 위한 데이터를 수집할 준비가 되었습니다.
기기에 대한 연결 만들기
연결된 MATLAB 세션의 명령 창에서 mobiledev
객체 m
을 만듭니다. 이 기기 또는 다른 기기에서 MATLAB Mobile을 사용 중인 경우 명령 화면을 사용하십시오.
m = mobiledev
m = mobiledev with properties: Device: 'Galaxy Tab A (2017)' Connected: 1 Logging: 0 AvailableCameras: {'back' 'front'} AvailableMicrophones: {'SM-T380-bottom'} SelectedMicrophone: 'SM-T380-bottom' InitialTimestamp: '' AccelerationSensorEnabled: 0 AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0 OrientationSensorEnabled: 0 PositionSensorEnabled: 0 MicrophoneEnabled: 1 Show all properties
SelectedMicrophone
속성은 어떤 마이크가 활성 상태인지 표시합니다. 여기에서는 AvailableMicrophones
속성에 요소가 하나만 있습니다. 또한 Connected
속성과 MicrophoneEnabled
속성도 확인하십시오. 각 속성의 값은 1
이며, 이는 설정이 완료되었음을 나타냅니다. MicrophoneEnabled
를 1
또는 0
으로 설정하여 마이크를 프로그래밍 방식으로 켜거나 끌 수 있습니다.
객체 m
의 이 디폴트 화면에는 모든 속성이 표시되지는 않습니다. 모든 속성 표시 링크를 클릭하여 추가 속성을 볼 수 있습니다. 이 중에는 객체의 Microphone
속성이 있습니다. 이 속성을 통해 마이크와 해당 설정에 대한 자세한 정보를 얻을 수 있습니다.
m.Microphone
Microphone with properties: Name: 'SM-T380-bottom' AvailableSampleRates: [8000 11025 12000 16000 22050 24000 32000 44100 48000] NumChannels: 2 SampleRate: 44100 IsEnabled: 1
오디오 데이터 녹음하기
오디오 데이터 수집을 시작할 수 있습니다.
마이크에 대고 말하여 오디오 입력 소스를 제공합니다.
기기의 센서 화면에서 시작을 누릅니다.
말하는 동안 몇 초간 녹음을 진행한 다음 중지를 누릅니다.
프로그래밍 방식으로 녹음을 중지하고 시작할 수 있는 방법은 다음과 같이 mobiledev
객체에 Logging
속성을 설정하는 것입니다.
m.Logging = 1 ⋮ m.Logging = 0
수집된 데이터는 이제 MATLAB으로 읽어올 수 있습니다.
오디오 데이터 읽기 및 플로팅하기
MATLAB에서 연결된 mobiledev
객체 m
을 다시 살펴보면, 수집된 오디오 데이터 샘플 개수가 MicrophoneEnabled
속성에 표시되어 있습니다.
m
m = mobiledev with properties: Device: 'Galaxy Tab A (2017)' Connected: 1 Logging: 0 AvailableCameras: {'back' 'front'} AvailableMicrophones: {'SM-T380-bottom'} SelectedMicrophone: 'SM-T380-bottom' InitialTimestamp: '' AccelerationSensorEnabled: 0 AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0 OrientationSensorEnabled: 0 PositionSensorEnabled: 0 MicrophoneEnabled: 1 (109224 Logged samples)
데이터를 MATLAB 작업 공간의 타임테이블로 읽어온 다음 테이블의 처음 몇 개 행을 살펴봅니다.
audTT = readAudio(m,OutputFormat="timetable");
head(audTT)
Time Left Right ______________ _________ _________ 0 sec 0 0 2.2676e-05 sec -0.030763 -0.030091 4.5351e-05 sec -0.091281 -0.0889 6.8027e-05 sec -0.14975 -0.14603 9.0703e-05 sec -0.20145 -0.19605 0.00011338 sec -0.24812 -0.24201 0.00013605 sec -0.28562 -0.27818 0.00015873 sec -0.31437 -0.30659
누적 플롯을 사용하여 마이크의 두 채널에서 얻은 데이터를 표시합니다.
stackedplot(audTT)