基于EasyDL搭建音频在线实时分类系统
Posted qiaoyurensheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于EasyDL搭建音频在线实时分类系统相关的知识,希望对你有一定的参考价值。
文章目录
搭建音频在线实时分类系统
本人基于自我学习目的搭建了生猪音频实时分类系统,使用百度 EasyDL 零门槛AI开发平台训练音频分类模型,然后发布为公有云在线服务;之后使用 javascript + axios + wavesurfer 搭建前端展示界面用来展示实时分类的效果。
1. easydl 训练音频分类模型
1.1 上传数据并训练音频分类模型
-
- 打开 easydl 官网:https://ai.baidu.com/easydl,点击立即使用,选择模型类型为声音分类。
- 打开 easydl 官网:https://ai.baidu.com/easydl,点击立即使用,选择模型类型为声音分类。
-
- 进入声音分类界面后,点击模型中心的创建模型,填写需要创建的相关信息。
-
- 在 EasyData 数据服务中的数据总览中点击创建数据集,并给定数据集名称。
-
- 在数据总览中该数据集中点击导入按钮导入数据集,并按照要求导入有标注信息的压缩包数据。
-
- 数据要求:以文件夹命名分类,一个文件夹下就是一类数据,文件夹名就是该类别名,其中单个音频文件时长需要超过1秒。
例如:文件夹1命名为的 pig_eat 其中文件全为猪吃食叫声,文件夹2命名为的 pig_howl 其中文件全为猪嚎叫声。
- 数据要求:以文件夹命名分类,一个文件夹下就是一类数据,文件夹名就是该类别名,其中单个音频文件时长需要超过1秒。
-
- 查看数据是否导入成功并识别出有标记信息,未标记成功的数据可以在线进行重新标注。
-
- 点击模型中心的训练模型,选择刚刚创建的模型和数据集,训练方式选择公有云部署。然后点击开始训练进行模型训练。
-
- 在模型中心的我的模型中可以看到训练的结果。
1.2 发布训练好的模型
-
- 点击公有云在线服务,选择发布新服务,填写api地址,将刚刚训练好的模型进行发布。
-
- 进入网址 https://console.bce.baidu.com/ai/#/ai/easydlLiteVoice/overview/index 配置公有云部署相关参数。
2. 前端部署
-
替换API Key等后浏览器访问以下链接
注意:将 https://console.bce.baidu.com/ai/#/ai/easydlLiteVoice/app/list 中的 API Key 和 Secret Key填入下面的client_id 和client_secret后面
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=ABC&client_secret=ABC
-
将上图 access_token 的一串数字填入替换 index.js 中第52行的access_token处即可。
-
前端界面展示
本文首发于本人博客:https://blog.gitnote.cn/post/pigAuido_reco_show/
版权信息: CC BY-NC-SA 4.0 (自由转载-非商用-相同方式共享-保持署名)
基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务
本项目是一个 Web 应用,使用安全且可扩展的 WebRTC 构建,提供视频和音频通信、文件共享、屏幕共享、白板和实时 P2P 和群聊消息的实时通信。WebRTC 是一个开源框架,可在 Web 和本机应用程序中实现音频、视频和数据的实时通信。 它使用户能够通过视频和音频会议、网络研讨会、播客等与他人交流。
尽管任何 WebRTC 应用程序都使用 4 种类型的服务器:
- 应用程序服务器- 托管 Connect Web 应用程序!
- 信令服务器- WebRTC 信令是指建立、控制和终止通信会话的过程。为了让两个端点开始相互交谈,必须交换三种类型的信息: 会话控制信息确定何时初始化、关闭和修改通信会话。
- NAT Traversal Server (STUN & TURN) - WebRTC 在连接同一本地网络中的浏览器时表现出色。但是,一旦您开始到达您的网络之外——例如,进入企业防火墙——您将需要更多的火力。如果不使用 STUN(用于 NAT 的会话遍历实用程序)或 TURN(使用围绕 NAT 的中继的遍历)协议,防火墙配置不会让 WebRTC 进入。这就是您需要 STUN/TURN 服务器的原因。
- 媒体服务器- 媒体服务器派上用场,因为它有助于减少客户端需要发送的流的数量,通常为一个,甚至可以减少客户端需要接收的流的数量,具体取决于媒体服务器的功能。
但是目前 Connect 默认提供免费信令服务器,因此 Application Server 和 NAT Traversal Server 两台服务器即可。
一、环境依赖
由于应用程序是使用 Laravel 7 构建的,因此它需要具备 Laravel 7 的所有先决条件。 Laravel 的依赖项之一是Composer。以下是脚本的核心依赖项:
PHP >= 7.4
MySQL >= 8.0
Apache / Nginx
Node.js、npm、Composer
此外,还有一些文件和文件夹需要脚本的“写”权限。
.env 文件位于根文件夹中
storage/framework 文件夹及其子文件夹
storage/logs 文件夹及其子文件夹
bootstrap/cache 文件夹及其子文件夹
resources/lang文件夹及其子文件夹
二、基本部署
以宝塔环境为例,首先宝塔面板直接安装: PM2管理器
以及对应版本的数据库、php。安装完成后重启服务器以生效:
# 1.安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
# 2.配置宝塔
(a) 安装Fileinfo扩展 # 如果Fileinfo拓展安装失败,就是内存太小,添加swap
(b) 禁用函数: proc_open、symlink、putenv、pcntl_signal、passthru
(c) 创建站点
其中值得注意的是,宝塔面板默认安装MySQL 8.0要求2核4G内存,低配服务器可以通过如下方式安装MySQL 8.0:
wget http://download.bt.cn/install/0/mysql.sh;
bash mysql.sh install 8.0
这样低内存服务器在宝塔面板安装Mysql8.0就实现了!
请注意:如果你已经安装了数据库,上面的命令会卸载删除当前数据库及数据,请提前备份,一定要提前备份!
# 3.安装Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# 4.编辑环境变量:修改.env文件数据库连接内容
# 5.创建数据库、创建站点、申请ssl证书、进入域名目录拉取项目
git clone https://github.com/DXJian/P2PChat.git -b master
# 6.创建上传目录软链接
php artisan storage:link
期间报错按照错误提示安装PHP拓展以及解除禁用函数即可,如:
# 7.设置storage目录权限为777
chmod -R 0777 storage
# 8.修改网站运行目录public ,取消防跨站攻击
# 9.添加网站伪静态如下:
location /
try_files $uri $uri/ /index.php$is_args$query_string;
三、线上部署
- 第一步检测环境是否合格,如若不合格按照不合格的选项整改即可。
- 第二步连接数据库
- 第三步创建管理员账户
- 第四步要求填入访问代码,随意输入即可。
项目上线后,进入设置(config)页面,(任意)填入Pusher Credential
选项中的信息。
四、建立通信
instant meeting
——start a meeting
——Live Class
之后的报错不需要理会,instant meeting
——meeting history
此时可以看到之前创建的代码为444的聊天室
五、新用户加入
新用户通过注册页面注册成功后,需要管理员激活新用户。
六、项目展示
激动人心的实时通信:
其他可以辅助参考的信息:
- codecanyon-27525559-connect-live-class-meeting-webinar-online-training-web-conference
- https://kodemintserviceshelp.freshdesk.com/support/solutions/81000097241
- https://www.youtube.com/watch?v=QY_VdHvBsSI
至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。
如果您有任何疑问或者好的建议,期待你的留言、评论与关注!
以上是关于基于EasyDL搭建音频在线实时分类系统的主要内容,如果未能解决你的问题,请参考以下文章
声网 Agora 音频互动 MoS 分方法:为音频互动体验进行实时打分
声网3D在线互动场景空间音频的实时渲染——如何把“声临其境”推向极致
基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 模型基于GPU 多进程处理视频流