基于EasyDL搭建音频在线实时分类系统

Posted qiaoyurensheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于EasyDL搭建音频在线实时分类系统相关的知识,希望对你有一定的参考价值。

文章目录

搭建音频在线实时分类系统

本人基于自我学习目的搭建了生猪音频实时分类系统,使用百度 EasyDL 零门槛AI开发平台训练音频分类模型,然后发布为公有云在线服务;之后使用 javascript + axios + wavesurfer 搭建前端展示界面用来展示实时分类的效果。

1. easydl 训练音频分类模型

1.1 上传数据并训练音频分类模型

    1. 打开 easydl 官网:https://ai.baidu.com/easydl,点击立即使用,选择模型类型为声音分类。
    1. 进入声音分类界面后,点击模型中心的创建模型,填写需要创建的相关信息。

    1. 在 EasyData 数据服务中的数据总览中点击创建数据集,并给定数据集名称。

    1. 在数据总览中该数据集中点击导入按钮导入数据集,并按照要求导入有标注信息的压缩包数据。

    1. 数据要求:以文件夹命名分类,一个文件夹下就是一类数据,文件夹名就是该类别名,其中单个音频文件时长需要超过1秒。
      例如:文件夹1命名为的 pig_eat 其中文件全为猪吃食叫声,文件夹2命名为的 pig_howl 其中文件全为猪嚎叫声。

    1. 查看数据是否导入成功并识别出有标记信息,未标记成功的数据可以在线进行重新标注。

    1. 点击模型中心的训练模型,选择刚刚创建的模型和数据集,训练方式选择公有云部署。然后点击开始训练进行模型训练。

    1. 在模型中心的我的模型中可以看到训练的结果。

1.2 发布训练好的模型

2. 前端部署

  1. 下载代码 https://gitee.com/qiaoyukeji/pigAuido_reco_show

  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

  1. 将上图 access_token 的一串数字填入替换 index.js 中第52行的access_token处即可。

  2. 前端界面展示


本文首发于本人博客:https://blog.gitnote.cn/post/pigAuido_reco_show/

版权信息: CC BY-NC-SA 4.0 (自由转载-非商用-相同方式共享-保持署名)

基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务

本项目是一个 Web 应用,使用安全且可扩展的 WebRTC 构建,提供视频和音频通信、文件共享、屏幕共享、白板和实时 P2P 和群聊消息的实时通信。WebRTC 是一个开源框架,可在 Web 和本机应用程序中实现音频、视频和数据的实时通信。 它使用户能够通过视频和音频会议、网络研讨会、播客等与他人交流。


尽管任何 WebRTC 应用程序都使用 4 种类型的服务器:

  1. 应用程序服务器- 托管 Connect Web 应用程序!
  2. 信令服务器- WebRTC 信令是指建立、控制和终止通信会话的过程。为了让两个端点开始相互交谈,必须交换三种类型的信息: 会话控制信息确定何时初始化、关闭和修改通信会话。
  3. NAT Traversal Server (STUN & TURN) - WebRTC 在连接同一本地网络中的浏览器时表现出色。但是,一旦您开始到达您的网络之外——例如,进入企业防火墙——您将需要更多的火力。如果不使用 STUN(用于 NAT 的会话遍历实用程序)或 TURN(使用围绕 NAT 的中继的遍历)协议,防火墙配置不会让 WebRTC 进入。这就是您需要 STUN/TURN 服务器的原因。
  4. 媒体服务器- 媒体服务器派上用场,因为它有助于减少客户端需要发送的流的数量,通常为一个,甚至可以减少客户端需要接收的流的数量,具体取决于媒体服务器的功能。

但是目前 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的聊天室





五、新用户加入

新用户通过注册页面注册成功后,需要管理员激活新用户。


六、项目展示

激动人心的实时通信:




其他可以辅助参考的信息:

  1. codecanyon-27525559-connect-live-class-meeting-webinar-online-training-web-conference
  2. https://kodemintserviceshelp.freshdesk.com/support/solutions/81000097241
  3. https://www.youtube.com/watch?v=QY_VdHvBsSI

至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

以上是关于基于EasyDL搭建音频在线实时分类系统的主要内容,如果未能解决你的问题,请参考以下文章

声网 Agora 音频互动 MoS 分方法:为音频互动体验进行实时打分

html5在线音视频会议系统

声网3D在线互动场景空间音频的实时渲染——如何把“声临其境”推向极致

基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 模型基于GPU 多进程处理视频流

基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 模型基于GPU 多进程处理视频流

基于b/s架构搭建一个支持多路摄像头的实时处理系统 ---- 使用yolo v5 模型基于GPU 多进程处理视频流