Obtener datos de audio del micrófono de un dispositivo móvil
Nota
Actualmente, esta funcionalidad admite el acceso a los micrófonos solo en dispositivos móviles Android.
Este ejemplo muestra cómo conectarse desde MATLAB® al micrófono de su dispositivo móvil y obtener señales de audio. Puede utilizar el código de MATLAB de este ejemplo para acceder a los datos de audio obtenidos desde cualquiera de estas opciones cuando haya iniciado sesión en su cuenta de MathWorks:
MATLAB Mobile™ ejecutándose en el mismo dispositivo
MATLAB Mobile ejecutándose en un dispositivo diferente
MATLAB Online™
MATLAB en un ordenador de sobremesa o portátil, con el complemento MATLAB Support Package for Android™ Sensors instalado
Configurar un dispositivo móvil
Instale y configure MATLAB Mobile en su dispositivo móvil. A continuación, inicie sesión en MathWorks® Cloud en el menú Configuración de MATLAB Mobile. Para obtener más información sobre estos pasos, consulte Instalar MATLAB Mobile en su dispositivo y Iniciar sesión en la nube.
Inicie MATLAB Mobile en su dispositivo.
Activar el acceso al micrófono en el dispositivo
Pulse el menú y seleccione Sensores.
En la sección Configuración de sensores, pulse Más; y en la sección Acceso remoto a MATLAB, active Acceso a sensores. Pulse OK para confirmar el acceso. Esto permite el acceso programático a los sensores del dispositivo.
Ahora está disponible un interruptor Acceso al micrófono. Actívelo y pulse OK para confirmar el acceso. Esto concede permiso específicamente para acceder de manera remota al micrófono.
Vuelva a Configuración de sensores, pulse Transmitir a y seleccione
MATLAB
.A continuación, active Acceso al micrófono. Esto enciende el micrófono para recibir la entrada de audio.
En este punto, debería ver una barra de nivel que cambia en tiempo real para indicar que el micrófono está recibiendo sonido. El micrófono del dispositivo ahora está preparado para obtener datos para transmitirlos a su sesión de MATLAB.
Crear una conexión con su dispositivo
En su sesión de MATLAB conectada, cree un objeto mobiledev
, m
, en la ventana de comandos. Si está usando MATLAB Mobile en este dispositivo u otro, utilice la pantalla Comandos.
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
La propiedad SelectedMicrophone
indica qué micrófono está activo. En este caso, solo hay un elemento en la propiedad AvailableMicrophones
. Además, observe que las propiedades Connected
y MicrophoneEnabled
tienen cada una un valor de 1
, que indica que la configuración está completa. Puede establecer MicrophoneEnabled
en 1
o 0
para encender y apagar el micrófono de forma programática.
Esta visualización predeterminada del objeto m
no muestra todas sus propiedades. Puede hacer clic en el enlace Show all properties
para ver más. Entre estas se encuentra la propiedad Microphone
del objeto, que puede analizar para obtener más información sobre el micrófono y su configuración.
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
Grabar datos de audio
Puede comenzar a capturar datos de audio.
Proporcione una fuente de entrada de audio hablando en el micrófono.
En la pantalla Sensores del dispositivo, pulse Empezar.
Deje que la grabación continúe durante unos segundos mientras habla y, a continuación, pulse Parar.
Una forma alternativa programática para parar y empezar la grabación es ajustar la propiedad Logging
en el objeto mobiledev
:
m.Logging = 1 ⋮ m.Logging = 0
Los datos obtenidos están ahora disponibles para leerlos en MATLAB.
Leer y representar datos de audio
Cuando vuelva a mirar en el objeto mobiledev
m
conectado en MATLAB, la propiedad MicrophoneEnabled
indica el número de muestras de datos de audio obtenido.
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)
Lea los datos en una tabla de tiempos en el área de trabajo de MATLAB y analice las primeras filas de la tabla.
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
Utilice una gráfica apilada para ver los datos de los dos canales del micrófono.
stackedplot(audTT)