モバイル デバイスのマイクからのオーディオ データの取得
この例では、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 を起動します。
デバイスでのマイク アクセスの有効化
メニューをタップし、[センサー] を選択します。
[センサーの設定] セクションで [その他] をタップし、[MATLAB リモート アクセス] セクションで [センサー アクセス] をオンに切り替えます。[OK] をタップしてアクセスを確定します。これにより、デバイス センサーへのプログラムによるアクセスができるようになります。
[マイク アクセス] スイッチが使用可能になっています。これをオンに切り替えてから、[OK] をタップしてアクセスを確定します。これにより、リモートのマイク アクセスが許可されます。
[センサーの設定] に戻り、[ストリーム先] をタップして [
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
プロパティの要素は 1 つしかありません。また、Connected
プロパティと MicrophoneEnabled
プロパティの値はいずれも 1
ですが、これは設定が完了していることを表します。MicrophoneEnabled
は 1
または 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
オーディオ データの録音
オーディオ データの取得を開始できます。
マイクに向かって話しかけて、オーディオ入力のソースを提供します。
デバイスの [センサー] ディスプレイで [開始] をタップします。
話しながら数秒間録音し、その後 [停止] をタップします。
録音の停止と開始をプログラムにより行うには、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)