pcm音频的录制、播放及转换
操作系统 :Windows10_x64
pcm格式为原始音频数据,有时候会遇到需要录制、播放及转换的情况,这里记录下。
一、录制pcm音频
这里演示下使用Audacity进行pcm音频录音的过程。
Audacity的使用可参考这篇文章:Audacity开源音频处理软件使用入门
1)打开Audacity软件;
采样率使用 16000 HZ ,使用单声道。

2)选择导出音频文件;

3)设置导出参数;

保存类型使用:其它无压缩音频文件
数据头格式:RAW(header-less)
编码:Signed 16-bit PCM
至此,音频录制完成。
二、播放pcm音频
pcm音频为原始格式,一般播放器不支持播放,这里演示下使用Audacity软件和ffplay播放的过程。
1、使用Audacity播放
1)打开audacity软件,选择“导入-》原始数据”选项;

2)在弹出的对话框中设置播放参数;
这里选中 16bit PCM 、单声道、1600HZ

3)参数设置完毕,执行导入操作,在界面点击播放即可听取音频;

2、使用ffmpeg播放pcm音频
ffmpeg里面有一个ffplay应用,可播放pcm音频,命令如下:
ffplay.exe -ar 16000 -ac 1 -f s16le -i test1.raw
播放效果如下:

三、pcm文件格式转换
1、使用Audacity进行转换
导入pcm后,可以使用Audacity将音频转换为mp3、wav等格式。

2、使用ffmpeg进行转换
可使用ffmpeg进行pcm音频格式转换,示例如下:
ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.mp3
ffmpeg.exe -ar 16000 -ac 1 -f s16le -i test1.raw test1.wav
四、pcm编码实时转换
voip通信场景,会遇到需要实时将pcm音频转换为其它编码的情况,这里以pcm编码转pcma为例子进行演示。
主要分为以下两个步骤:
1、将16k pcm转换为8k pcm;
2、将8k pcm转换为pcma编码;
代码从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023033001 获取。
五、资源下载
本文涉及资源可从百度网盘获取:
https://pan.baidu.com/s/1DHjexr8flZCJx29lweyDVQ

关注微信公众号(聊聊博文,文末可扫码)后回复 2023033001 获取。
pcm音频的录制、播放及转换的更多相关文章
- Windows PCM音频捕获与播放实现
在WINDOWS下,音频函数有多种类型,如MCI.多媒体OLE控制.高级音频等,使用方法都比较简单.但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的 ...
- Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据
一.实现说明 OpenSL ES的录音要比播放简单一些,在创建好引擎后,再创建好录音接口基本就可以录音了.在这里我们做的是流式录音,所以需要用至少2个buffer来缓存录制好的PCM数据,这里我们可以 ...
- Android音频处理——通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能
Android音频处理--通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能 音频这方面很博大精深,我这里肯定讲不了什么高级的东西,最多也只是一些基础类知识,首先,我们要介绍一下 ...
- AudioRecord 录制播放PCM音频
AudioRecord 与 MediaRecorder 区别 AudioRecord 基于字节流录制,输出的是pcm数据,未进行压缩,直接保存的pcm文件不能被播放器识别播放. 可以对音频文件进行实时 ...
- 使用AudioTrack播放PCM音频数据(android)
众所周知,Android的MediaPlayer包含了Audio和video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlayer实现的.MediaPl ...
- 使用WindowsAPI实现播放PCM音频的方法
这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下 本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAP ...
- 简单实用的PCM音频播放器--沉寂几年之后回归的第一份笔记
---恢复内容开始--- PCM音频网络流播放,至于用处,就不多解释了. 一个简单的类,基于NAudio,一个简单的拼装类,实例化时三个参数,依次是采样率,系统播放设备Index,播放声道,调用Pla ...
- iOS中音频的录制与播放(本地音频文件的播放)
iOS功能开发涉及到音频处理时,最常见的时进行录音,以及音频文件的播放.停止播放等的操作.在开发中还要避免同一个音频文件,或不同音频文件之间的处理,比如说正在播放A音频时,可以停止播放A音频,也可以播 ...
- Android OpenSL ES 开发:OpenSL ES利用SoundTouch实现PCM音频的变速和变调
缘由 OpenSL ES 学习到现在已经知道 OpenSL ES 不仅能播放和录制PCM音频数据,还能改变声音大小.设置左声道或右声道播放.还能变速播放,可谓是播放音频的王者.但是变速有一点不好的就是 ...
- 视音频数据处理入门:PCM音频采样数据处理
===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...
随机推荐
- PINNs的网络大小与过拟合
PINNs中网络越大时,会不会产生过拟合呢 虽然PINNs可以不用到数据,但是我认为物理约束所带来的信息也是有限的 因此当网络变得很大时,也有可能产生过拟合现象吧 但是在神经元分裂那篇文章中,训练停滞 ...
- day28_常用模块——hashlib,logging模块
hashlib(摘要算法) Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度 ...
- ybtoj 12F
求值的话改为求解前缀和的值,通过两个前缀和相减即可得到每个值. 每次询问相当于给一个方程. 一共有 $n$ 个未知数,因此需要 $n$ 个方程,同时每个数都必须至少在方程中出现一次. 最小生成树求解即 ...
- CentOS 7(Linux)安装Docker
CentOS 7(Linux)安装Docker 一.分别执行下列命令添加并更新yum源 yum update yum install epel-release -y yum clean all yum ...
- Qt使用API实现鼠标点击操作
前段时间,工作需要进行数据录入,每次都要点击3次按钮,想让鼠标自行点击,只要下位机接入,就自动点击按钮把数据读出,录入到服务端,并且进行检测,说干就干,没有经验,那只有面向百度编程. 根据查到的资料, ...
- 使用Navicat查询后 , 在结果处更改数据
参考资料: https://blog.csdn.net/weixin_43786801/article/details/125364995 问题: 在使用Navicat查询是,往往想直接对查询结果进行 ...
- 读书笔记<<世界是部金融史>>
1.权力只对来源负责.权力只会对其来源负责--孟德斯鸠<论法的精神> 2.能违反的是纪律,不能违反的是规律.人自然要遵从人性规律. 3.在金融市场中有一个法则,如果市场认为一件事是真的,那 ...
- Linux下C语言程序的内存布局
在<虚拟地址空间以及编译模式>一节中讲到,虚拟地址空间在32位环境下的大小为 4GB,在64位环境下的大小为 256TB,那么,一个C语言程序的内存在整个地址空间中是如何分布的呢?数据在哪 ...
- webpack之性能优化(webpack4)
在讲解性能优化的方案之前,我们需要了解一下webpack的整个工作流程, 方案一:减少模块解析 也就是省略了构建chunk依赖模块的这几个步骤 如果没有loader对该模块进行处理,该模块的源码就是最 ...
- vite生成vue3项目
1.创建项目 npm init vite 2.根据提示输入项目名,也就是文件目录名,再选择框架 3.进入目录 npm install npm run dev 打完收工.