AMR文件格式的解释

2023-11-05


一、什么是AMR、AMR-WB

全称Adaptive Multi-Rate和Adaptive Multi-Rate Wideband,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。

二、编码方式

这里都是针对AMR narrow-band (AMR-NB)进行讨论
Amr有以下一些编码方式:

Mode 0 - AMR 4.75 - Encodes at 4.75kbit/s
Mode 1 - AMR 5.15 - Encodes at 5.15kbit/s
Mode 2 - AMR 5.9 - Encodes at 5.9kbit/s
Mode 3 - AMR 6.7 - Encodes at 6.7kbit/s
Mode 4 - AMR 7.4 - Encodes at 7.4kbit/s
Mode 5 - AMR 7.95 - Encodes at 7.95kbit/s
Mode 6 - AMR 10.2 - Encodes at 10.2kbit/s
Mode 7 - AMR 12.2 - Encodes at 12.2kbit/s
8~15位一些 noise frames 和保留位的定义。

每种格式对应的帧的大小如下。
CMR Mode Frame size (bytes)
0 AMR 4.75 13
1 AMR 5.15 14
2 AMR 5.9 16
3 AMR 6.7 18
4 AMR 7.4 20
5 AMR 7.95 21
6 AMR 10.2 27
7 AMR 12.2 32

我们来做一个简单的计算,PCM16和AMR之间的转换
Amr 一帧为20毫秒
AMR 4.75Kbits/s:

每秒产生的声音位数 = 4750bits/s
每20ms帧占用的位数 = 4750bits/s / 50frames/s = 95bits
每20ms帧占用的字节数 = 95bits / 8bits/byte = 11.875bytes - 圆整到12字节,不足的补0
加上一个字节的帧头,所以,20ms一帧的AMR: 12-bytes + 1-byte = 13-bytes

相反,转换回来就成了
13-bytes * 50frames/s * 8bits/byte = 5200bits/s

注意,这里两个数值并不对应,是由于圆整地原因

三、文件格式
Amr的文件格式极为简单,如图1所示:

文件最开始时6个字节的header,
[#!AMR/n] 括号间的部分
(或者十六进制表示为 0x2321414d520a ).

接下来就是连续的语音帧,
每个帧包含一个帧头+语音数据
帧头如图2所示:

P设置为0
FT为编码模式,上面已经列举了可用的值。
Q为帧质量指示器,如果为0表明帧被损坏,接受者需要将RX_TYPE设置成SPEECH_BAD或者SID_BAD。
何为RX_TYPE请参考RFC3267,其实该节介绍的内容都可以在RFC3267里面找到。

图3 这个图表为 5.9 kbit 编码的文件格式 (with 118 speech bits)
其中P为补0位。

 

 

 


from:http://blog.csdn.net/rinuslucky/article/details/1326498



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AMR文件格式的解释 的相关文章

  • Wwise指引贴

    几种音频软件的比较 Criware音频引擎跟Wwise在功能上有什么直接的区别么 为什么很多大厂都选择Wwise
  • 音频系统POP音的原理和解决方法

    音频系统POP音的原理和解决方法 目录 文章目录 音频系统POP音的原理和解决方法 目录 音频IC与功放IC的电源时序与功能模块使能时序 功放IC输入端INP与INN的阻抗匹配 增大VBIAS滤波电容 BTL输出和SE输出 减小输出端耦合电
  • 怎样使用Cubase进行人声消除

    所谓分离伴奏 指的就是消除人声 通常在一首歌曲的音频文件中 混音师一般都会将人声放在声像位置的正中间再输出为一个立体声音频文件 一般情况下是这样 但不代表全是这样 因此 人声的波形在该立体声音频文件的左声道和右声道中应该是相同或相似的 所以
  • 实时音频编程(一)

    系列文章目录 实时音频编程 一 实时音频编程 二 实践与技巧 文章目录 系列文章目录 简介 实时系统 实时系统的分类 实时音频系统 什么会产生 glitch 阻塞 算法的最坏时间复杂度 锁 不使用锁的第一个原因 优先级倒置 不使用锁的第二个
  • 运用Microsoft.DirectX.DirectSound和Microsoft.DirectX实现简单的录音功能

    1 首先要使用Microsoft DirectX DirectSound和Microsoft DirectX这两个dll进行录音 需要先安装microsoft directx 9 0cz这个组件 百度云盘下载地址 http pan baid
  • 基于线性预测的语音编码原理解析

    早期的音频系统都是基于声音的模拟信号实现的 在声音的录制 编辑和播放过程中很容易引入各种噪声 从而导致信号的失真 随着信息技术的发展 数字信号处理技术在越来越多领域得到了应用 数字信号更是具备了易于存储和远距离传输 没有累积失真 抗干扰能力
  • Android Audio系统框架

    Audio System 二 之 Audio系统框架 二 Linux Audio系统框架 2 1 Application 层 2 2 Framework 层 2 3 Libraries 层 2 4 HAL 层 2 5 Tinyalsa 层
  • MIC—BIAS

    MIC BIAS为麦克的直流偏置电压 1 你说的mic bias应该说的是主板上麦克的偏置电压 偏置电压是由英文bias voltage翻译得到的 2 在电子技术课程中 我们知道 由三极管组成的放大电路能够放大一定范围的交流信号 但前提是需
  • python:pydub模块

    一 安装 1 安装模块 pip install pydub 2 安装插件 云盘中下载文件ffmpeg 打开电脑上的控制面板 系统 高级系统设置 环境变量 然后双击path 看到如下的界面 然后点新建会出现一个新建的地址栏 你需要在这个新建地
  • BES 的蓝牙串口SPP数据收发实验

    1
  • A²B汽车音频总线介绍

    A B使远程I S TDM成为可能 I S是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准 该总线专责于设备之间的数据传输 广泛应用于各种多媒体系统 I C是两线式串行总线 用于连接微控制器及其外围设备 简单来说就是I C传
  • 六、Audio-ALSA架构中的codec

    一 codec简介 处理器如果既想 听到 外界的声音 又想向外界传达自己的 心声 那么就需要同时用到 DAC 和 ADC 这两款芯片 那是不是买两颗 DAC 和 ADC 芯片就行了呢 答案肯定是可以的 但是音频不单单是能出声 能听到就行 我
  • AMR文件格式分析

    最近在传输手机录音时 遇到了AMR编码的问题 开始以为可以任意截断amr文件 加个文件头就可以播放的 后来发现是有问题 这样得到的amr音频有些不能正常播放 后来参看amr格式后 才知道amr文件是一帧一帧的 如果是按照完整的帧前面添加文件
  • DirectX编程:利用 DirectSound 录音

    DirectX编程 利用 DirectSound 录音 转载 http www cnblogs com stg609 archive 2008 10 24 1318931 html 花了一阵子 把DirectX安装后自带的帮助文件中的那部分
  • Java把V3音频文件转化为wav文件的算法的代码

    将写内容过程经常用到的内容段做个备份 如下内容内容是关于Java把V3音频文件转化为wav文件的算法的内容 import java io BufferedInputStream import java io BufferedOutputSt
  • 实时音视频的那些事儿(三)—— 音频编码

    前言 上一篇文章 实时音视频的那些事儿 二 音频采集 中我们讲到了如何在iOS Android Windows平台实现音频采集 今天将介绍如何实现音频的编码 一 iOS 中使用 AudioUnit 实现音频编码的过程 AudioUnit 是
  • Android开发之合并文件的几种方式

    下面介绍合并文件的几种方式 并通过合并amr文件来举例介绍合并文件的具体流程 amr格式的文件头是6字节 所以在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头 注意 不同文件的文件头是不一样的 所以在合并的时候根据不同文件相应的
  • 基于音频和文本的多模态语音情感识别(一篇极好的论文,值得一看哦!)

    基于音频和文本的多模态语音情感识别 语音情感识别是一项具有挑战性的任务 在构建性能良好的分类器时 广泛依赖于使用音频功能的模型 本文提出了一种新的深度双循环编码器模型 该模型同时利用文本数据和音频信号来更好地理解语音数据 由于情感对话是由声
  • 解决:soundfile打开opus文件出错: File contains data in an unimplemented format.

    Python的soundfile库依赖于libsndfile库 需要安装最新版本 sudo apt get update sudo apt get install libsndfile1 如果之前已经安装soundfile 则可能采用了旧版
  • 免费音效素材网站,一次性介绍清楚

    不管是在游戏 电影 电视剧 短视频还是音频中 合适的音效能够更好的表达内容和渲染氛围 今天给大家分享几个免费音效素材 感兴趣的话可以接着往下看 一 制片帮素材 找音效 制片帮素材不仅有海量的优质视频素材 还有丰富的音效资源 分类清晰 更重要

随机推荐

  • MySQL收费方式

    导读 网络上多数朋友担心甲骨文会对MySQL软件采用收费模式 多数朋友也不清楚MySQL开源到底是什么模式 开源 免费嘛 是很多的疑问 MySQL是遵守双重协议的 一个是GPL授权协议 一个是商用授权协议 注释 为解决其他企业用MySQL软
  • Python的必学技术——Jupyter Notebook

    推荐 Jupyter NoteBook 的原因 整合所有的资源 交互性编程体验和零成本重现结果 Jupyter NoteBook 能够把软件代码 计算输出 解释文档 多媒体资源整合在一起的多功能科学运算平台 很符合英文里说一图胜千言 A p
  • pytorch-yolov3 train 报错

    UserWarning indexing with dtype torch uint8 is now deprecated please use a dtype torch bool insteadhttps github com erik
  • NB-IoT、Cat.1、5G将迎来新一波发展浪潮

    据工信部5月7日消息 工信部办公厅发布关于深入推进移动物联网全面发展的通知 通知提出主要目标和重要任务 通知全文如下 各省 自治区 直辖市及新疆生产建设兵团工业和信息化主管部门 各省 自治区 直辖市通信管理局 相关企业 移动物联网 基于蜂窝
  • Charles 弱网测试

    知识了解 网络延时 网络延时指一个数据包从用户的计算机发送到网站服务器 然后再立即从网站服务器返回用户计算机的来回时间 通常使用网络管理工具PING Packet Internet Grope 来测量网络延时 由于互联网络的复杂性 网络流量
  • 浏览器输入url后回车后全过程及其优化

    浏览器输入URL后回车后 会发生什么 嗯嗯 很经典的问题 概括性大致流程是这样的 1 查询URL对应的IP地址 DNS域名解析 2 建立TCP连接 连接服务器 3 浏览器发起请求 4 服务器响应浏览器请求 5 浏览器解析响应 渲染页面 6
  • 代码随想录算法训练营第二十四天

    LeetCode 77 组合 链接 77 组合 思路 回溯算法的典型应用 回溯算是理解难度比较大的算法了 经常会有一些循环嵌套在递归里 其本质就是罗列出所有的组合排列 可能性 因为是暴力算法时间复杂度都比较高 有时候需要搭配一定的剪枝操作
  • 数据结构——二叉树的遍历

    树 是一种重要的数据结构 本文浅谈二叉树的遍历问题 采用C语言描述 一 二叉树基础 1 定义 有且仅有一个根结点 除根节点外 每个结点只有一个父结点 最多含有两个子节点 子节点有左右之分 2 存储结构 二叉树的存储结构可以采用顺序存储 也可
  • GitHub Actions + Nginx 部署React App到云服务器

    初始化环境 一台云服务器 我的服务器是基于centos的华为云 个人电脑安装好git node环境 安装Nginx 进入云服务器控制台 远程连接进服务器终端 或者本地终端输入ssh 你的服务器用户名 你的服务器公网ip 如果出现Someon
  • Doxygen文档系统---入门

    Doxygen简介 Doxygen是一种开源跨平台的 以类似JavaDoc风格描述的文档系统 完全支持C C Java Objective C和IDL语言 部分支持PHP C 注释的语法与Qt Doc KDoc和JavaDoc兼容 Doxy
  • 神兵利器

    声明 该公众号大部分文章来自作者日常学习笔记 也有部分文章是经过作者授权和其他公众号白名单转载 未经授权 严禁转载 如需转载 联系开白 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与文章作者和本公众号无关 现在只对常读和星
  • WebRTC建立会话流程分析

    WebRTC建立会话流程总结 了解如何运行PeerConnection Demo后 熟悉运行流程可以做为深入学习WebRTC的切入点 本节重点解释客户端双方建立会话时交互的主要信令 控制会话的文本协议 和与信令相关的 WebRTC API
  • node-sass报错

    我们安装vue项目时 经常遇到nade sass报错 然后切换到某个node版本后不再报错 原因见下文 一 报错内容 二 保存原因 本地nodejs版本跟安装的node sass版本不一致 三 解决办法 1 查看本地node版本 node
  • 使用书签修改视频播放速度(javascript:)

    增加书签 网址输入以下内容 javascript document querySelector video playbackRate 2 0 2 0是2倍速 根据需要自行修改速度 使用方法 打开视频后 点一下书签即可修改视频速度 如果没有改
  • 如何提高训练模型准确率

    8个经过证实的方法 提高机器学习模型的准确率 摘要 本文分享了 8 个经过证实的方法 这些方法用来改善模型的预测表现 它们广为人知 但不一定要按照文中的顺序逐个使用 导语 提升一个模型的表现有时很困难 如果你们曾经纠结于相似的问题 那我相信
  • Android开发指南!2021中级Android开发面试解答,完整版开放下载

    Google 为了帮助 Android 开发者更快更好地开发 App 推出了一系列组件 这些组件被打包成了一个整体 称作 Android Jetpack 它包含的组件如下图所示 老的 support 包被整合进了 Jetpack 例如上图
  • 混合策略纳什均衡——附例题及解析

    目录 引入 混合纳什均衡 例题 求法 引入 假设这样一种对局 甲乙两人抽扑克牌 扑克牌只有两种花色 红和黑 两张牌花色相同算甲胜 反之乙胜 那么甲乙双方应该如何设定自己抽出不同花色的概率呢 比如 设甲抽红牌的概率P 60 那么黑牌概率就是1
  • [架构之路-204]- 常见的需求分析技术:结构化分析与面向对象分析

    目录 前言 1 1 3 需求分析概述 导言 11 3 1需求分析的任务 1 绘制系统上下文范围关系图 2 创建用户界面原型 3 分析需求的可行性 4 确定需求的优先级 5 为需求建立模型 最难的一项任务 SA and OOA 6 创建数据字
  • EMI滤波器设计概念

    EMI滤波器设计概念 1 1 基本概念 在开关电源的设计里 为了对策传导干扰大都会在输入端前端加入EMI滤波器 因传导测试是由AC端来做量测 因此滤波器愈靠近接收器效果愈好 让所有的干扰都可经由滤波器做衰减 而一般滤波器是经由电感与电容组合
  • AMR文件格式的解释

    一 什么是AMR AMR WB 全称Adaptive Multi Rate和Adaptive Multi Rate Wideband 主要用于移动设备的音频 压缩比比较大 但相对其他的压缩格式质量比较差 由于多用于人声 通话 效果还是很不错