VOS系统录音文件REC转MP3,REC录音转WAV与WAV转MP3具体项目中实现方式,以及占用空间变化!

前面讲解了VOS3000系统的录音REC转MP3的安装步骤,不清楚的,可以移步这里查看:http://t.csdnimg.cn/OXNT9 或者 点击这里查看安装步骤,下面继续讲下他们的使用方法,以及实际项目中的运用,首先我们需要明确我们的实际需求是什么,我们假设一个项目,客户需要自动下载录音到指定路径,并且下载的录音格式为MP3格式。

  首先我们在VOS服务器里面创建脚本完成当天的录音打包工作,下面是我写的一个简单脚本内容

[root@hcss-ecs-b3de ~]# cat recmv.sh 
#!/bin/bash
# 切换到源目录  
cd /home/kunshi/record
# 获取当前日期和昨天的日期  
today=$(date +"%Y%m%d")  

# 获取当前日期和昨天的日期  
yesterday=$(date -d "yesterday" +%Y%m%d)  
# 定义目标目录  
target_dir=/home/uns
target_dir1=/home/kunshi/record
# 创建目标日期目录  
target_dir_path="${target_dir}/${today}"  
mkdir -p "$target_dir_path"  
# 初始化计数器  
declare -i sum=0  
# 遍历1到24的数字  
for i in {01..24}; do  
    # 将/home/kunshi/record目录下当天日期目录下的所有REC文件移动到目标日期目录下  
    mv "${target_dir1}/${today}/${i}"/*.REC "$target_dir_path"  
done  
# 切换到目标目录  
cd "$target_dir"  
# 判断目标日期目录下是否有REC文件,如果有则打包成tar.gz  
if [ -d "$target_dir_path" ] && [ "$(find "$target_dir_path" -type f -name '*.REC' | wc -l)" -gt 0 ]; then  
    tar_file="${today}.tar.gz"  
    tar -czvf "$tar_file" -C "$target_dir" "$today"  
    echo "成功创建压缩包 ${tar_file}" >> /opt/uns/rz.txt  
else  
    echo "目标文件夹 ${target_dir_path} 不存在或没有REC文件" >> /opt/uns/rz.txt  
fi  
echo "ok"
# 删除/home/uns/ 目录下昨天的tar.gz
 rm -rf /home/uns/${yesterday}.tar.gz
echo "ok"  >> /opt/uns/rz.txt
[root@hcss-ecs-b3de ~]# 

经过上述步骤,我们就可以得到当天的所有录音文件,我们再下载到本服务器,使用MDD工具进行REC格式转换即可得到我们需要的MP3格式音频文件了!

假设你需要转换的REC文件都i在目录 /home/uns 路径下,我们可以使用下面命令完成转换

mdd -t wav -p /home/uns/* 

#这表示使用 mdd转换/home/uns目录下的所有REC文件为 wav格式,如果我们需要转换为MP3,我们直接替换wav为MP3即可

mdd -t mp3 -p /home/uns/* 

也可以编写脚本来自动化完成,这里省略了!

下面我们看看占用的文件大小吧!

154K转换后只有36K,那么我们再看看转换为 WAV格式的

很明显,WAV格式是非常占用空间的,但是绝大多数外呼系统都采用的是WAV格式,因此非常暂用硬盘空间,我们下面看把WAV转换为MP3能占用多少

这里我们很明显就可以看见,虽然两个都是MP3,但是大小是不一样的,使用命令

ffmpeg -i test.wav test2.mp3 

#转换的MP3明细比REC使用mdd转换的大很多!如果你需要的语音需要用于外呼系统使用,推荐使用MDD转换为wav格式使用,如果你需要极速压缩空间,那么推荐使用MDD工具转换MP3使用!好了,祝您好运,如果你项目需要帮助的,请私信!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android中的屏幕刷新机制(动画视频形象说明机制)

一,刷新率和帧率,60hz和60fps的区别 在Android系统中,刷新率和帧率是两个不同的概念,它们各自在显示过程中扮演着不同的角色。以下是对它们的详细解释: 刷新率,单位是Hz,是指屏幕在一秒内刷新…

C++学习第九课:指针的精髓与应用

C学习第九课:指针的精髓与应用 1. 指针基础 指针是一种存储内存地址的变量,它指向另一个变量的内存位置。 int var 10; int *ptr &var; // ptr是指向var的指针2. 声明和初始化指针 声明指针时在类型前加星号(*)。 int *ptr; // 声明一个整型指…

STK与matlab交互 Astrogator模块(13)

一、背景介绍 在本文介绍一个场景,五颗蓝方卫星和一颗红方卫星,在两个小时之内,使用神经网络等人工智能算法,实现一个轨道追踪的问题,其中接口输入是六颗卫星在J2000坐标系下的坐标,接口输出是该六颗卫星沿…

使用ssh一台机器跳转到另一台机器

//默认端口是22. 1、ssh 用户名ipssh root192.168.111.3//如果端口不是22需要指定端口 2、ssh -p 端口号 用户名ip ssh -p 8888 root192.168.111.3

vue中@click.prevent函数的使用

一个困扰我很久的问题,后端使用djangoDRF框架开发api,前端使用vueaxioselement plus写的登录功能,后端已经设置了允许跨域,使用postman请求接口正常,但是使用浏览器登录时,后端返回[25/Apr/2024 18:13:13,1…

windows下安装onlyoffice

文章目录 1、 安装ErLang2、 安装rabbitmq3、 安装postgresql4、 安装onlyoffice(社区版) 1、 安装ErLang 下载地址:https://erlang.org/download/otp_win64_24.2.exe opt_wind64_24.2.exe 直接运行,一步一步安装 2、 安装rabbitmq 下载地址&#xf…

.NET C# ORM 瀚高数据库

SqlSugar ORM SqlSugar 是一款 老牌 .NET开源ORM框架,由果糖大数据科技团队维护和更新 ,开箱即用最易上手的ORM 优点 :【生态丰富】【高性能】【超简单】 【功能全面】 【多库兼容】【适合产品】 【SqlSugar视频教程】 支持 &#xff1a…

linux部署java1.8(java17)

两种方式: 方式一 1.输入查找命令: yum -y list java*2.输入安装命令: yum install -y java-1.8.0-openjdk.x86_643.测试是否已经安装: java -version方式二: 点击链接进入官网:https://www.oracle.com/…

go设计模式之组合设计模式

组合设计模式 简介 将对象组合成树形结构以表示“部分-整体”的层次结构。组合设计模式使得用户对单个对象和组合对象的使用具有一致性。 参与者 Component 为组合中的对象声明接口 Leaf 在组合中表示叶子节点对象。 Composite 存储子部件。访问和管理子部件。 案例1 c…

H3C无线AP管理命令

先上链接 01-AP管理命令-新华三集团-H3C display wlan ap all

程序设计:C语言 调用命令行程序并获得输出 popen(源码)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 这是个很基本的功能&#xff0…

记录不熟悉的函数用法(C++)——assign

1. assign (仅顺序容器) 记录起因:不知道一个vector给另一个vector在不是初始化时是如何赋值的,于是翻看《C Primer》,在“标准库类型vector”这一节中,并没有得到解答。于是,上网搜索,搜到一篇&#xff0…

redis安装配置

简单启动一个redis容器 拉取redis镜像:(更多版本看https://hub.docker.com/_/redis/tags) sudo docker pull redis:7.2.4简单启动一个redis服务 ,–requirepass 指定密码 123456 sudo docker run -d \ --name redis \ --restartalways \ -p 6379:6379…

Java 如何避免代码中大量的 if else 判断

文章目录 Java 如何避免代码中大量的 if else 判断解决方案1.策略模式2.工厂模式3.策略模式 工厂模式4.提前 return(适用于分支逻辑很简单的 if else)5.枚举 Java 如何避免代码中大量的 if else 判断 在代码中经常会出现 if else 判断,如下…

当众演讲技巧的方法有哪些(3篇)

当众演讲技巧的方法有哪些(3篇) 当众演讲技巧的方法有很多,下面我将分三篇来详细阐述其中的一些关键技巧: **篇:准备与开场技巧 充分准备:提前规划演讲内容,明确主题和目标,准备详…

自然语言转SQL 学习笔记

自然语言转SQL 学习笔记 0. 引言1. 技巧1. **明确数据库表的结构**2. **表间关联的明确说明**3. **字段格式的具体说明**4. **字段取值的具体范围**5. **专业术语的准确定义**6. **数据库类型的指定**7. **考虑查询性能优化**8. **事务处理和一致性需求**9. **数据聚合和分组需…

【蓝桥杯C++A组省三 | 一场勇敢的征途与致19岁的信】

随着4.13西大四楼考场的倒计时结束… 就这样蓝桥杯落幕了 省三的名次既满足又不甘心,但又确乎说得上是19岁途中的又一枚勋章 从去年得知,纠结是否要报名、到寒假开始战战兢兢地准备、陆续开始创作博客,记录好题和成长……感谢你们的关注&…

APT预警攻击平台截获Nday

APT预警攻击平台截获Nday 2024年4月26日 设备漏洞【漏洞利用】H3C Magic R100任意代码执行漏洞(CVE-2022-34598) 0000 : 0010 : 0020 : 0030 : 0040 : 0050 : 0060 : 0070 :6F 72…

请求接口报错:java.lang.IllegalStateException: argument type mismatch

目录 一、场景二、报错信息三、控制器四、接口调用五、原因六、解决 一、场景 1、调用后端接口报错 2、接口参数以Json方式传递 – 二、报错信息 java.lang.IllegalStateException: argument type mismatch Controller [com.xxx.huarunshouzheng.controller.MallControlle…

线性结构与树形结构的区别

线性结构与树形结构在数据组织和关系表达上存在显著的差异。 线性结构是一个有序的数据元素的集合,其中的每个数据元素都有且仅有一个直接前驱和一个直接后继(除了第一个元素没有前驱,最后一个元素没有后继)。这种一对一的关系使得…