Main Content

モバイル デバイスのマイクからのオーディオ データの取得

この例では、MATLAB® からモバイル デバイスのマイクに接続して、オーディオ信号を取得する方法を説明します。この例の MATLAB コードを使用すると、MathWorks アカウントにログイン中は、次のいずれからでも取得したオーディオ データにアクセスできます。

  • 同じデバイスで実行中の 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 リモート アクセス] セクションで [センサー アクセス] をオンに切り替えます。[OK] をタップしてアクセスを確定します。これにより、デバイス センサーへのプログラムによるアクセスができるようになります。

  3. [マイク アクセス] スイッチが使用可能になっています。これをオンに切り替えてから、[OK] をタップしてアクセスを確定します。これにより、リモートのマイク アクセスが許可されます。

  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 プロパティの要素は 1 つしかありません。また、Connected プロパティと MicrophoneEnabled プロパティの値はいずれも 1 ですが、これは設定が完了していることを表します。MicrophoneEnabled1 または 0 に設定できます。これにより、マイクをプログラムによりオンまたはオフにできます。

オブジェクト m のこの既定の表示では、表示されないプロパティもあります。[Show all properties] リンクをクリックするとさらに表示されます。その中にはオブジェクトの 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 で読み取ることができます。

オーディオ データの読み取りとプロット

接続済みの mobiledev オブジェクト m を MATLAB で確認すると、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 ワークスペースの timetable に読み取り、表の最初の数行を調べます。

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

積み上げプロットを使用して、マイクの 2 つのチャネルからのデータを表示します。

stackedplot(audTT)

plots of captured audio data

参考

関数