主要内容

audioplayer

连接音频输出设备和覆盆子π硬件

描述

该对象表示音频输出设备(如扬声器或耳机)与Raspberry Pi™硬件之间的连接。中列出的功能可以与音频设备交互对象的功能

创建

描述

例子

audioPlayObj= audioplayer (mypi设备名称创建一个对象,表示与音频输出设备的连接,设备名称,连接到树莓派硬件,mypi.树莓派硬件用raspi对象。

例子

audioPlayObj= audioplayback (mypi设备名称名称,值属性使用名称-值对。例如,audioPlayObj = audioplayback (mypi plughw: 1、0,' SampleRate ', 44100)以44100的采样率播放音频数据。可以指定多个名称-值对。每个属性名用单引号括起来。

输入参数

全部展开

连接到特定的树莓派硬件板,指定为raspi对象。

附加到硬件上的音频输出设备的名称。要获取连接到硬件的音频输出设备列表,请使用listAudioDevices功能描述在列出可用的ALSA音频输出设备

例子:audioPlayObj = audioplayback (mypi、“设备名称”、“plughw: 1、0”);

数据类型:字符串

属性

全部展开

音频输出设备用于播放音频的采样速率。要查找音频输出设备支持的采样速率,请使用金宝applistAudioDevices功能描述在列出可用的ALSA音频输出设备

例子:

> > audioCaptureObj。SampleRateans = 44100

数据类型:

对象的功能

从连接的音频设备播放音频覆盆子π

例子

全部折叠

创建一个树莓派™连接。

mypi = raspi
mypi = raspi属性:DeviceAddress:“172.18.182.234”端口:18734 BoardName:“树莓π4模型B”AvailableLEDs:{“led0”}AvailableDigitalPins:[2、3、4、5、6、12、13、14、15、16、17、18、19日,20日,21日,22日,23日,24日,25日,26日,27日]AvailableSPIChannels:{‘CE0’,‘CE1} AvailableI2CBuses: {} AvailableWebcams:{“微软®LifeCam电影院(TM):(usb-0000:01:00.0-1.1)'} I2CBusSpeed:支金宝app持外设

打开raspi_pitchshiftdeployment ()函数。在这个函数中,连接到音频输入和输出设备是使用audiocaptureaudioplayer对象。修改音频对象的属性以匹配您正在使用的设备的属性。

类型raspi_pitchshiftdeployment
function raspi_pitchshiftdeployment() %该函数用于将音频处理应用程序部署到% Raspberry Pi中。兴趣的具体应用是音高转换。%此函数从连接到树莓% Pi的设备中获取音频输入,音高将音频输入转换为所需的音高,然后将此输出发送到连接到树莓Pi的播放设备。在%树莓派硬件上创建用于音频处理的捕获和播放系统对象。r = raspi ();captureObj = audicapture (r,'plughw:2,0','SampleRate', 48000, 'SamplesPerFrame', 4800);playbackObj = audioplayer(r,'plughw:2,0', 'SampleRate', 48000);节距转换操作的%设置节距= -5;半音调重叠的音高偏移= 0.2;延迟线重叠率Fs = 8192; % Sampling Frequency pitchShifter = audiopluginexample.PitchShifter('PitchShift',8,'Overlap',0.3); setSampleRate(pitchShifter,Fs); for k = 1:3000 % capture audio input from the input device input = capture(captureObj); % pitch shift the audio input. % input is of type int16 and needs to be converted to type double % before processing the data. This is because the function shiftPitch % expects all its inputs to be of the same data type which in this case % is type double pitchShifted = zeros(size(double(input)),'like',double(input)); %#ok pitchShifter.PitchShift = pitch; pitchShifter.Overlap = overlap; [pitchShifted] = pitchShifter(double(input)); % playback audio output using the output device % output data needs to be of type int16 and thus pitchShifted % which is a double is cast to be of type int16 before being sent to % the device play(playbackObj,int16(pitchShifted)); end end

创建树莓派配置对象,董事会。

董事会= targetHardware (“树莓π”
board = targehardware with properties: Name: 'Raspberry Pi' DeviceAddress: '172.18.182.234'用户名:' Pi'密码:'*********' BuildDir: '/home/ Pi' EnableRunOnBoot: 0 BuildAction: 'Build, load, and run' CoderConfig: [1×1 coder. conf]CodeConfig]

部署raspi_pitchshiftdeployment ()函数在树莓派上使用配置对象,董事会.成功部署后,将音频捕捉设备靠近嘴并开始说话。您可以通过音频播放设备听到您的音高变化的声音。

部署(板、“raspi_pitchshiftdeployment”
代码生成成功:查看报告

扩展功能

另请参阅

||

介绍了R2019b