Main Content

모바일 기기의 마이크에서 오디오 데이터 수집하기

이 예제에서는 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을 시작합니다.

기기에서 마이크 액세스 활성화하기

  1. 메뉴를 누른 후 센서를 선택합니다.

  2. 센서 설정 섹션에서 더 보기를 누른 다음 MATLAB 원격 액세스 섹션에서 센서 액세스를 켭니다. 확인을 눌러 액세스를 확인합니다. 그러면 기기 센서에 프로그래밍 방식으로 액세스할 수 있습니다.

  3. 이제 마이크 액세스 스위치를 사용할 수 있습니다. 이 스위치를 켜고 확인을 눌러 액세스를 확인합니다. 그러면 원격 마이크 액세스에 대한 권한이 부여됩니다.

  4. 센서 설정으로 돌아가서 스트리밍 위치:를 누르고 MATLAB을 선택합니다.

  5. 그런 다음 마이크 액세스를 켭니다. 그러면 오디오 입력을 받을 수 있도록 마이크가 켜집니다.

이제부터는 실시간으로 변하는 레벨 막대를 통해 마이크에 소리가 수신되고 있음을 알 수 있습니다. 기기의 마이크는 이제 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이며, 이는 설정이 완료되었음을 나타냅니다. MicrophoneEnabled1 또는 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

오디오 데이터 녹음하기

오디오 데이터 수집을 시작할 수 있습니다.

  1. 마이크에 대고 말하여 오디오 입력 소스를 제공합니다.

  2. 기기의 센서 화면에서 시작을 누릅니다.

  3. 말하는 동안 몇 초간 녹음을 진행한 다음 중지를 누릅니다.

프로그래밍 방식으로 녹음을 중지하고 시작할 수 있는 방법은 다음과 같이 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)

plots of captured audio data

참고 항목

함수