このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
モバイル デバイスのマイクからのオーディオ データの取得
この例では、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 propertiesSelectedMicrophone プロパティは、どのマイクがアクティブであるかを表します。ここでは、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)
