当前位置: 首页 > wzjs >正文

河南省监理协会官方网站建设网站开发的前端技术有哪些

河南省监理协会官方网站建设,网站开发的前端技术有哪些,网站开发合同支付,素材图片高清本文将以Linux开发板为基础,使用ALSA音频框架和C#语言,演示如何实现基础的音频录制与播放功能。 1. 背景 音频处理是嵌入式开发中常见的需求,无论是语音交互、环境监测还是多媒体应用都离不开音频模块的支持。在Linux系统中,ALSA…

本文将以Linux开发板为基础,使用ALSA音频框架和C#语言,演示如何实现基础的音频录制与播放功能。

1. 背景

音频处理是嵌入式开发中常见的需求,无论是语音交互、环境监测还是多媒体应用都离不开音频模块的支持。在Linux系统中,ALSA(Advanced Linux Sound Architecture)是一个成熟的音频框架,提供了丰富的音频处理接口,支持音频的录制、播放、混音等功能。而C#语言作为一种跨平台的高级语言,也有着广泛的应用场景,通过.NET技术,我们可以在Linux系统中使用C#语言进行开发。

解决了.NET IOT 设备的音频处理的基础需求,我们就可以在此基础上实现更多的功能,比如关键词唤醒,接入大模型的语音交互功能等。

2. 环境准备

在开始之前,我们需要准备一些基础的环境。

2.1. 硬件要求

  • 搭载Linux系统的开发板(如树莓派、Jetson Nano、D-Robotics、OrangePi、Luckfox 等)
  • 支持ALSA驱动的音频输入/输出设备(板载声卡或USB声卡)
  • 一定的存储空间和内存

这里的演示我们以 Luckfox 开发板为例,其他开发板也可以根据实际情况进行调整。对于音频输入/输出设备,Luckfox Pico Ultra 板载了贴片麦克风,并有一个MX1.25 2P 连接器,支持接入 8Ω 1W 喇叭。对于树莓派或 Jetson Nano 可以在微雪官网找到对应的音频扩展板,也可以使用USB声卡,根据实际需求进行选择。

请添加图片描述

2.2. 软件依赖

首先,建议安装好.NET 环境,.NET 8 或 .NET 9 都可以。当然也可以选择在本地开发完毕后发布非框架依赖的版本到开发板上运行。但是,这样传输不便,毕竟文件较大。直接在开发板上开发,也是非常不建议的,因为开发板的性能有限,开发效率低下,编译时间长。

其次,需要安装 ALSA 的开发库,以便在C#中调用ALSA的接口。在Ubuntu系统中,可以通过以下命令安装:

sudo apt-get install libasound2-dev

同时,为了方便我们使用音频设备,需要将当前用户添加到音频组中,以便在无需 sudo 访问音频设备。可以通过以下命令添加:

sudo usermod -a -G audio $USER

加入音频组后,需要重新登录或重启系统,使用户组生效。

2.3. 音频配置

在开始之前,我们需要确认音频设备可以正常使用。可以通过以下命令查看当前系统的音频设备信息:

arecord -l
aplay -l

同时我们可以对音频设备进行简单的测试:

arecord -f S16_LE -r 16000 -c 2 -d 5 test.wav
aplay test.wav

上面的命令使用的是默认的音频设备,如果有多个音频设备,可以通过 -D 参数指定设备名称。如果能够正常录制和播放音频,则说明音频设备可以正常使用。

为了提高麦克风收音范围和播放的音量大小,我们可以通过以下命令调整麦克风增益以及播放音量:

amixer cset name='ADC ALC Left Volume' 26
amixer cset name='ADC ALC Right Volume' 6
amixer cset name='ADC Digital Left Volume' 195
amixer cset name='ADC Digital Right Volume' 195
amixer cset name='ADC MIC Left Gain' 3
amixer cset name='ADC MICBIAS Voltage' 'VREFx0_975'
amixer cset name='ADC Mode' 'SingadcL'
amixer cset name='DAC LINEOUT Volume' 30

不同的设备可能有不同的音频控制器,可以通过 amixer scontrols 查看当前设备支持的音频控制器,然后通过 amixer scontents 查看具体的控制器名称和取值范围。

需要注意的是,有的 name 可能需要增加一个 Volume 后缀,同时需要注意取值范围,不要设置过大或过小,以免损坏设备。对于不同的设备,可能存在不一样的地方,可以根据实际情况进行调整。主要就是调整麦克风的增益和提高偏置电压,以适应不同的环境。

请添加图片描述

当然,除了指令外,也可以通过 alsamixer 命令进入交互式界面进行调整,可以参考 Luckfox 开发板的音频配置文档。

请添加图片描述

3. 编写代码

首先我们需要进行项目的初始化,可以通过以下命令创建一个新的控制台应用程序。同时,我们需要安装一个用于操作ALSA的.NET库 Alsa.Net,这个库实现了对ALSA的封装,方便我们在.NET中调用ALSA的接口。

dotnet new console -n AudioDemo
cd AudioDemo
dotnet add package Alsa.Net

完整的代码如下:

using Alsa.Net;class Program
{static void Main(string[] args){var settings = new SoundDeviceSettings{MixerDeviceName = "hw:0",       // 混音设备PlaybackDeviceName = "hw:0",     // 播放设备RecordingDeviceName = "hw:0",    // 录音设备RecordingSampleRate = 16_000     // 16kHz采样率};using var alsaDevice = AlsaDeviceBuilder.Create(settings);// 录制10秒音频Console.WriteLine("开始录音...");alsaDevice.Record(10, "output.wav");// 播放录制的音频Console.WriteLine("播放音频...");alsaDevice.Play("output.wav");}
}

在代码中,我们首先创建了一个 SoundDeviceSettings 对象,用于指定音频设备的名称和采样率。然后通过 AlsaDeviceBuilder.Create 方法创建一个 AlsaDevice 对象,用于操作音频设备。在 AlsaDevice 对象中,我们可以调用 Record 方法录制音频,或者调用 Play 方法播放音频。hw:0 表示使用第一个硬件设备,可通过aplay -l查看可用设备。16kHz适用于语音场景,音乐场景建议使用44.1kHz或48kHz。

编写好代码后,我们就可以发布到开发板上运行了,对于 Luckfox 开发板记得选则 arm 架构,其他开发板根据实际情况进行选择。

4. 总结

通过ALSA框架与C#的结合,开发者可以快速在Linux嵌入式设备上实现音频功能。本文展示了基础的录音/播放实现,实际项目中还需要考虑更多的优化和使用方式,具体的可以前往 Alsa.Net 项目仓库查看更多的使用方法。需要注意的是,因为设备和系统的差异,以及项目更新的问题,可能会出现一些部分接口不支持的情况,需要根据实际情况进行调整。


文章转载自:

http://76hT2MXa.mzrqj.cn
http://UEb2JSwG.mzrqj.cn
http://fNIpI9yV.mzrqj.cn
http://BkNLp1Vo.mzrqj.cn
http://R2jRKOlV.mzrqj.cn
http://vj4f1Joo.mzrqj.cn
http://3aqFCJkw.mzrqj.cn
http://RV4UhxgI.mzrqj.cn
http://mVCDHDIl.mzrqj.cn
http://UJZHNIfF.mzrqj.cn
http://Aw7HWGOO.mzrqj.cn
http://u7Vjeu5e.mzrqj.cn
http://Ec8cHDFN.mzrqj.cn
http://osXxjdkQ.mzrqj.cn
http://cRVyjbBq.mzrqj.cn
http://Ix3dnDdk.mzrqj.cn
http://JraftAwN.mzrqj.cn
http://wgQJvijY.mzrqj.cn
http://1YJJkLAI.mzrqj.cn
http://Sv2QZHdk.mzrqj.cn
http://xtjbIQOk.mzrqj.cn
http://AWiEemwu.mzrqj.cn
http://UeIZcTbC.mzrqj.cn
http://w68rXRyK.mzrqj.cn
http://CCuQfzTq.mzrqj.cn
http://thwhDYrC.mzrqj.cn
http://KSQ6oi86.mzrqj.cn
http://DAzr3jZn.mzrqj.cn
http://spCiOy1K.mzrqj.cn
http://nAjwDF8l.mzrqj.cn
http://www.dtcms.com/wzjs/671893.html

相关文章:

  • 深圳市网站建设公司设计公司济南网站seo报价
  • 网上做中考题的网站广州公司注册核名网址
  • 企业网站初始期如何优化顺企网查企业电话
  • 企业官网网站建设免费wordpress xss漏洞利用
  • 网站开发企业排名北京网站建设开发
  • 网站排名的优化网站的模版要怎么重新做
  • 电子招标投标平台网站建设wordpress获取动态页面
  • 网站里的副栏目是什么做淘客网站的
  • 如何建立微网站详细步骤成都电子商务网站建设公司
  • 网站优化建设工作总结范文西安微网站
  • 黄冈网站建设 网络推广建站还有前途么
  • 北京通网站建设价格浙江建站
  • 做旅游宣传哪个网站好怎么样看网站用什么程序做的
  • 亳州建设网站公司网站制作那家便宜
  • 设计类网站模板建立网站用什么软件
  • 百度免费网站申请中小企业网站建设教程
  • 个人虚拟网站模板网点地址信息获取错误是什么意思
  • 网站建设哪些微网站建设公司哪家好
  • 建公司网站需要哪些资料网站开发与服务器匹配
  • 历史类网站策划浙江网新股吧
  • 网站有哪些内容注册网络公司经营范围大全
  • 南阳专业做网站泾川县建设局网站
  • 两学一做网站 苏州济南集团网站建设价格
  • 成都网站建设 四川冠辰网站建设wordpress的意思
  • 企业自建网站营销论文广州顺德网站设计
  • 跳转网站wordpress 上传图片接口
  • 购物网站开发案例教程计算机毕业设计代做网站
  • 怎么制作微信购物网站做网站的开发软件
  • 移动终端的网站专门做mmd的网站
  • 做那个网站的图客比较好wordpress logo 流光