音频相关pcm,增益

2024-02-13 21:48
文章标签 音频 相关 pcm 增益

本文主要是介绍音频相关pcm,增益,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PCM音频编码

PCM音频编码 - 简书

什么是分贝 (dB)?

20db代表的是声音的增益,它的数值是以对数的形式表示的。在音频工程中,db是一种常用的度量单位,用于描述声音的音量、音频信号的增减和功率的放大或缩小等。20db表示声音的增益是原来的10倍,也就是说,当声音的强度增加20db时,它的声音强度会增加到原来的10倍。例如,如果原来的声音强度是50db,那么当增加20db时,它的声音强度将变为70db。
需要注意的是,在音频工程中,db的增减是以对数的形式计算的,所以它的增益是以指数形式增长的,因此20db的增益比10db大,50db的增益比40db大。这也是为什么在音频工程中,我们经常使用db作为度量单位的原因。

AAC通常是1024个采样点作为一个编码单元

mp3是1152

比如:MP3 48k, 1152个采样点,每帧则为 24毫秒

1152/48000= 0.024 秒 = 24毫秒;

如果是 16位, 双声道,  1152*(16/8)*2= 1152*2*2 = 4608个字节,
除非是  8  位,单声道,   1152*(8/8)*1 = 1152 个字节

详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)_webrtc agc_音视频开发老马的博客-CSDN博客

FPGA学习笔记之——信号处理基础概念_fpga中怎么将数值换算成db_苑同学的博客-CSDN博客

16bit的pcm双声道转单声道

16bit的pcm双声道转单声道_arseyli的博客-CSDN博客

PCM音频振幅知识

PCM音频振幅知识_zidan的博客-CSDN博客_音频振幅

数字音频存储大小。采样频率、量化深度数越高,声音质量也越高,保存这段声音所用的空间也就越大。立体声(双声道)存储大小是单声道文件的两倍。即:文件大小(B)=采样频率(Hz)×录音时间(S)×(量化深度/8)×声道数(单声道为1,立体声为2)
如:录制1分钟采样频率为44.1KHz,量化深度为16位,立体声的声音(CD音质),文件大小为:
44.1×1000×60×(16/8)×2=10584000B≈10.09M

二.P

(640条消息) FFmpeg通过volume filter进行音频数据的增益_ffmpeg filter volume_passionkk的博客-CSDN博客

//将1.wav音量增大2倍并保存为2.wav,如果想降低2倍,参数为volume=0.5
ffmpeg.exe -i 1.wav -af volume=2  2.wav
FFmpeg视频播放器开发-FFmpeg视频音量调节(六) - 知乎 (zhihu.com)

(640条消息) [FFMPEG]进行音频音量调整_ffmpeg 调整音量_酷咪兔的博客-CSDN博客

PCM 音频编码

PCM信号未经过任何编码和压缩处理(无损压缩)。与模拟信号比,它不易受传送系统的杂波及失真的影响。动态范围宽,可得到音质相当好的效果。编码上采用A律13折线编码。

A律13折线

A律是PCM非均匀量化中的一种对数压扩形式。数字脉冲编码调制(PCM)是目前模拟信号数字化的基本方法,PCM包括采样、量化、编码三个步骤,其中量化是对抽样值的取值离散,根据量化间隔的不同选取分为均匀量化和非均匀量化,非均匀量化可以有效地改善信号的量化信噪比。语音信号的量化常采用ITU建议的两种对数形式的非均匀量化压缩特性:A律和μ律,A律编码主要用于30/32路一次群系统, A律PCM用于欧洲和中国。

具体可以看文章

声道格式                           : L R

音响中的R 、L、C分别表示什么_百度知道

他们回答的都错的R 、L、是代表左,右声道 C 就是中置的意思拉!就是你的放在电视上的中置音箱。

视音频数据处理入门:PCM音频采样数据处理

视音频数据处理入门:PCM音频采样数据处理_雷霄骅的博客-CSDN博客_pcm采样

详解音频编解码的原理、演进和应用选型等

https://www.jianshu.com/p/6b4c481f4294

即时通讯开发中音频编解码的原理、演进和应用选型-wecloud-ChinaUnix博客

ADTS(Audio Data Transport Stream)头之于AAC

ADTS(Audio Data Transport Stream)头之于AAC_coloriy的博客-CSDN博客_audio data transport stream (adts)

]# dnf  install  sox
 

]# soxi  output.opus 

Input File     : 'output.opus'
Channels       : 1
Sample Rate    : 48000
Precision      : 16-bit
Duration       : 00:00:55.96 = 2686080 samples ~ 4197 CDDA sectors
File Size      : 906k
Bit Rate       : 129k
Sample Encoding: Opus
Comments       : 
language=eng
handler_name=SoundHandler
major_brand=isom
minor_version=512
compatible_brands=isomiso2avc1mp41
encoder=Lavf58.45.100

[root@localhost shipin]# 
 

48000*16

pin]# ffprobe  -loglevel  quiet  -print_format  json  -show_format  -show_streams   -i  output.opus 
{
    "streams": [
        {
            "index": 0,
            "codec_name": "opus",
            "codec_long_name": "Opus (Opus Interactive Audio Codec)",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 1,
            "channel_layout": "mono",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 2686200,
            "duration": "55.962500",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "handler_name": "SoundHandler",
                "major_brand": "isom",
                "minor_version": "512",
                "compatible_brands": "isomiso2avc1mp41",
                "encoder": "Lavf58.45.100"
            }
        }
    ],
    "format": {
        "filename": "output.opus",
        "nb_streams": 1,
        "nb_programs": 0,
        "format_name": "ogg",
        "format_long_name": "Ogg",
        "start_time": "0.000000",
        "duration": "55.962500",
        "size": "905842",
        "bit_rate": "129492",
        "probe_score": 100
    }
}
[root@localhost shipin]# 
 

audio驱动之简单介绍

  • PCM :PCM(Pulse-code modulation) 是脉冲编码调制,PCM信号的两个重要指标是采样频率 和 量化精度 ,目前,CD音频的采样频率通常为44100Hz,量化精度是16bit。播放音乐时,应用程序从存储介质中读取音频数据(MP3、WMA、AAC…),经过解码后,最终送到音频驱动程序中的就是PCM数据;在录音时,音频驱动不停地把采样所得的PCM数据送回给应用程序,由应用程序完成压缩、存储等任务。所以,音频驱动的两大核心任务就是:

  • playback:如何把用户空间的应用程序发过来的PCM数据,转化为人耳可以辨别的模拟音频信号
  • capture:把mic拾取到的模拟信号,经过采样、量化,转换为PCM数据送回给用户空间

音频驱动主要实现一下3个部分的功能:
(1)播放声音(playback)
(2)录音(capture)
(3)声音控制(control)

运行adb shell ls -l /dev/snd,我们可以看到当前平台注册的声卡驱动设备。
主要分为以下几类:

这篇关于音频相关pcm,增益的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706687

相关文章

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚: