C++ 音频

news2024/9/20 6:36:24

一、采样频率

        当前主流的采样频率为22.05KHz、44.1KHz、48KHz

22.05KHz:为FM广播声音品质

44.1KHz:为理论上最高的CD声音品质(直播,录像,acc)

48KHz人耳可分辨的最高采样频率

( 比如 “ 44100Hz 16bit stereo ” 表示 采样频率44.1KHz,每个采样点占2字节,双声道

( 比如 “ 22050Hz 8bit mono ” 表示 采样频率22.05KHz,每个采样点占1字节,单声道

二、PCM

        PCM(Pulse Code Modulation) 为 脉冲编码调制。PCM中的声音数据没有被压缩

一般情况下,一帧PCM由2048次采样获得。

 注意:双声道时,采样低字节在前,高字节在后

 1分钟的PCM声音大小 = 44100 × 2(声道) × 2(字节) 60(秒) ÷ 1024 ÷ 1024 ≈ 10MB(兆)

直接传输非常大,因此需要对PCM流进行压缩。(最常见的压缩方式:aac

三、aac

        aac是音频流PCM最常用的压缩方式,除此以外还有g711,opus,mp3等。

3.1 数据格式

        acc有两种数据格式:

ADIF(Audio Data Interchage Format):音频数据交换格式。只有一个统一的头,

                                                                   必须得到所有数据后才能解码,适用于本地文件。

ADTS(Audio Data Transport Stream):音频数据传输流。每一帧都有头信息,

                                                                    任意帧解码,适用于传输流

struct AdtsHeader {        
    unsigned int syncword;  //12 bit 同步字 '1111 1111 1111',一个ADTS帧的开始
    uint8_t id;        //1 bit 0代表MPEG-4, 1代表MPEG-2。
    uint8_t layer;     //2 bit 必须为0
    uint8_t protectionAbsent;  //1 bit 1代表没有CRC,0代表有CRC

    uint8_t profile;           //2 bit AAC级别(MPEG-2 AAC中定义了3种profile,MPEG-4 AAC中定义了6种profile)
    uint8_t samplingFreqIndex; //4 bit 采样率(4表示44100Hz)
    uint8_t privateBit;        //1bit 编码时设置为0,解码时忽略
    uint8_t channelCfg;        //3 bit 声道数量
    uint8_t originalCopy;      //1bit 编码时设置为0,解码时忽略
    uint8_t home;               //1 bit 编码时设置为0,解码时忽略

    uint8_t copyrightIdentificationBit;   //1 bit 编码时设置为0,解码时忽略
    uint8_t copyrightIdentificationStart; //1 bit 编码时设置为0,解码时忽略
    unsigned int aacFrameLength;               //13 bit 一个ADTS帧的长度包括ADTS头和AAC原始流
    unsigned int adtsBufferFullness;           //11 bit 缓冲区充满度,0x7FF说明是码率可变的码流,不需要此字段。CBR可能需要此字段,不同编码器使用情况不同。这个在使用音频编码的时候需要注意。

    /* number_of_raw_data_blocks_in_frame
     * 表示ADTS帧中有number_of_raw_data_blocks_in_frame + 1个AAC原始帧
     * 所以说number_of_raw_data_blocks_in_frame == 0
     * 表示说ADTS帧中有一个AAC数据块并不是说没有。(一个AAC原始帧包含一段时间内1024个采样及相关数据)
     */
    uint8_t numberOfRawDataBlockInFrame; //2 bit
};

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

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

相关文章

使用PXE实现自动化安装rockylinux8.10

PXE 一、简介 实现多台服务器自动化安装系统。 二、部署 这里宿主机是 centos7,PXE 部署的是 rockylinux8.10。宿主机需提前关闭 selinux 和防火墙。 2.1 部署 dhcp 安装 dhcp [roottest-server ~]# yum install -y dhcp修改配置文件 # 复制默认的配置文件 …

极光出席深圳国际人工智能展并荣获“最具投资价值人工智能奖”

9月8-10日,由深圳市工业和信息化局、深圳市发展和改革委员会、深圳市科技创新局、深圳市政务服务和数据管理局、深圳市中小企业服务局共同指导,深圳市人工智能行业协会主办的第五届深圳国际人工智能展正式开幕。作为中国领先的客户互动和营销科技服务商&…

基于人工智能的智能农业监控系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 智能农业是利用现代信息技术和人工智能进行农业生产的优化管理,通过实时监控和预测系统,可以改善作物的生产效…

工控安全需求分析与安全保护工程

工控系统安全威胁与需求分析 工控系统(ICS),是由各种控制组件、监测组件、数据处理与展示组件共同构成的对工业生产过程进行控制和监控的业务流程管控系统 分类:离散制造类和过程控制类 工控系统安全保护机制与技术 工控系统安全…

无人机加速度计的详解!!!

一、加速度计的基本定义 加速度计是一种用于测量物体加速度的传感器。它能够感知物体在各个方向上的加速度变化,并将这些变化转换为电信号进行输出。 二、加速度计的工作原理 加速度计的工作原理基于牛顿第二定律,即力等于质量乘以加速度(…

Pygame中Sprite类实现多帧动画3-2

3.2.3 设置帧的宽度、高度、范围及列数 通过如图6所示的代码设置帧的宽度、高度、范围及列数。 图6 设置帧的宽度、高度、范围及列数的代码 其中,frame_width、frame_height、rect和columns都是MySprite类的属性,在其__init__()方法中定义,…

计算机毕业设计选题推荐-产品委托配送系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

【项目综合】基于 Boost 库的站内搜索引擎(保姆式讲解,小白包看包会!)

目录 一、项目背景 1)搜索引擎是什么 2)Boost 库是什么 3)搜索的结果是什么 二、项目原理 1)宏观原理和整体流程 2)正序索引与倒序索引 3)所用技术栈和项目环境 4)项目源码地址&#x…

[【人工智能学习笔记】4_3 深度学习基础之卷积神经网络

卷积神经网络概述 卷积神经网络(Convolutional Neural Network, CNN)一种带有卷积结构的深度神经网络,通过特征提取和分类识别完成对输入数据的判别;在1989年提出,早期被成功用于手写字符图像识别;2012年更深层次的AlexNet网络取得成功,伺候卷积神经网络被广泛应用于各…

5G毫米波阵列天线仿真——CDF计算(方法一)

累计分布函数(CDF)在统计学上是一个由0增长到1的曲线。5G中CDF被3GPP标准推荐使用,5G 天线阵的有效全向辐射功率EIRP的CDF函数被用来评价设备的质量和性能。由于EIRP是在某一个方向角theta, phi上的辐射功率,幅值由天线增益与激励…

微波无源器件1 一种用于紧凑双极化波束形成网络的新型双模定向耦合器

摘要: 在本文中提出了一种用于实现紧凑双极化波束形成网络的新型定向耦合器。此器件的功能为两个用于矩形波导TE01和TE10模式的独立定向耦合器。这两个模式之间并不耦合。可以获得两个模式的不同耦合值。这个耦合器可以两次用于两个正交计划。因此可以获得此完整网络…

Centos7 安装RocketMQ(二进制版)

一、介绍 RocketMQ:云原生“消息、事件、流”实时数据处理平台,覆盖云边端一体化数据处理场景 在阿里孕育 RocketMQ的雏形时期,我们将其用于异步通信、搜索、社交网络活动流、数据管道,贸易流程中。随着我们的贸易业务吞吐量的上…

python使用超级鹰识别验证码

1.超级鹰注册 超级鹰: https://www.chaojiying.com/ 注册后购买题分 2.获取要识别的图片 我们以这个附件下载的网页为例: https://gh.lnut.edu.cn/system/_content/download.jsp?urltypenews.DownloadAttachUrl&owner1224556702&wbfileid1504223 点开f12然后刷新几…

不小心格式化了移动硬盘怎么恢复?数据恢复的实用方法

在数字化时代,移动硬盘是我们存储和传输数据的重要工具。然而,由于操作失误或其他原因,我们有时会不小心格式化移动硬盘,导致重要数据的丢失。当面临这种情况时,我们应该如何恢复被格式化的数据呢?本文将为…

制造业项目管理系统:企智汇软件专为制造企业量身定制项目管理

企智汇制造业项目管理系统是一款专为制造业量身定制的项目管理软件,旨在帮助企业高效、可视化管理项目,优化工作流程,并提升整体竞争力。以下是该系统的详细介绍: 一、系统概述 企智汇制造行业项目管理系统的功能模块涵盖:客户管…

这些方法,让你的亚马逊广告效果翻倍

据最新发布的《2024年媒体广告报告》显示,亚马逊不仅在全球最具价值品牌榜单中跃居第五位,更已成为广告领域核心平台之一。鉴于此趋势,做好亚马逊广告,是跨境卖家实现商品热销和品牌推广的关键步骤。本文将分享亚马逊广告的类型并…

工作纪实57-SublimeText正则匹配

有一堆错误数据,需要统计不同格式的错误数; 比如:local4000_7999 先验证正则格式是否正确 使用grep统计 egrep -v local\d_\d|wc -l 不匹配 grep -E local\d_\d|wc -l 匹配

智慧驱动,效能跃升 | 华宇市场监管现场执法数智助手

建设背景 为贯彻落实国家市场监督管理总局关于《市场监管“数字执法”能力提升三年行动》的重点工作任务,切实提升基层市场监管行政执法效能。华宇规划设计了“市场监管现场执法数智助手”,依托全国市场监管行政执法办案系统,助力破解现场执法…

干货分享:2024四大录音转文字工具推荐!

日常工作生活中,录音转文字技术不仅能够帮助我们节省大量时间,还能确保信息的准确性和完整性。今天,就让我们一起来探索几款优秀的录音转文字工具吧! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字…

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中,各行各业对数据库系统的需求各有侧重。举例来说,金融风控领域对数据库的高效事务处理(TP)和分析处理(AP)能力有着严格要求;游戏行业则更加注重文档数据库的灵活性和性…