音频文件转码工具文档

目录

1. 音频文件转码 1

1.1. 简介 1

1.2. 转换命令示例 2

1.3. wav 文件转 16k 16bits 位深的单声道pcm文件 2

1.4. mp3 文件转 16K 16bits 位深的单声道 pcm文件 2

1.5. M4a转换pcm 3

1.6. M4a转换wav 3

1.7. ffmpeg 使用说明 3

1.7.1. 简介 3

1.7.2. 编译参数与支持格式 4

1.7.3. 输入音频参数 4

1.7.4. 输出音频参数 4

1.8. 输出amr-nb 音频 :全称是:Adaptive Multi-Rate,自适应多速率 5

1.8.1. 常用参数 6

1.8.2. 参数拼接 6

1.9. 查看音频格式ffprobe使用 6

1.10. pcm文件音频时长计算 8

  1. 音频文件转码

    1. 简介

本文描述如何从其它格式的音频转成符合语音识别输入要求格式的音频文件。

由于底层识别使用的是pcm,因此推荐直接上传pcm文件。如果上传其它格式,会在服务器端转码成pcm,调用接口的耗时会增加。

语音识别仅支持以下格式 :pcm(不压缩)、wav(不压缩,pcm编码)、amr(有损压缩格式);8k/16k 采样率 16bit 位深的单声道。即:

  1. pcm wav amr 格式三选一。 正常情况请使用pcm。其中wav格式需要使用pcm编码。
  2. 采用率二选一 8000 或者 16000。正常情况请使用16000
  3. 单声道

示例音频文件下载

  1. 转换命令示例
  2. wav 文件转 16k 16bits 位深的单声道pcm文件

ffmpeg -y  -i 16k.wav  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm

44100 采样率 单声道 16bts pcm 文件转 16000采样率 16bits 位深的单声道pcm文件

ffmpeg -y -f s16le -ac 1 -ar 44100 -i test44.pcm  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm

  1. mp3 文件转 16K 16bits 位深的单声道 pcm文件

ffmpeg -y  -i aidemo.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 16k.pcm

// -acodec pcm_s16le pcm_s16le 16bits 编码器 // -f s16le 保存为16bits pcm格式// -ac 1 单声道//  -ar 16000  16000采样率

正常输出如下:

Input #0, mp3, from 'aaa.mp3':

Metadata:

encoded_by      : Lavf52.24.1

Duration: 00:02:33.05, start: 0.000000, bitrate: 128 kb/s

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s// 输入音频, MP3格式, 44100采样率,stereo-双声道, 16bits 编码

Output #0, s16le, to '16k.pcm':

Metadata:

encoded_by      : Lavf52.24.1

encoder         : Lavf57.71.100

Stream #0:0: Audio: pcm_s16le, 16000 Hz, mono, s16, 256 kb/s

// 输入音频, MP3格式, 16000采样率,mono-单声道, 16bits    // 256 kb/s = 32KB/s = 32B/ms

  1. M4a转换pcm

for /r "D:\000atibek\l3 v doin sb" %%i in  (*.m4a)    do (

"D:\prgrm\KMPlayer\ffmpeg.exe"  -y  -i "%%i"  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "%%i.pcm"

)

  1. M4a转换wav

直接转wav有问题,只好中间转换了。。

"D:\prgrm\KMPlayer\ffmpeg.exe"  -y  -i "%%i"  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 "%%i.pcm"

"D:\prgrm\KMPlayer\ffmpeg.exe"  -f s16le -ar 16000 -ac 1 -i "%%i.pcm" "%%i.pcm.wav"

  1. ffmpeg 使用说明

    1. 简介

ffmpeg 的一个功能是转换不同的音频格式,其它简介请至http://ffmpeg.org/

linux 版本:http://www.ffmpeg.org/download.html#build-linux linux 静态编译版本:https://www.johnvansickle.com/ffmpeg/ windows 版本 :http://ffmpeg.zeranoe.com/builds/

ffmpeg官方文档地址:http://ffmpeg.org/ffmpeg.html

  1. 编译参数与支持格式

ffmpeg默认支持pcm与wav(pcm编码)格式,额外的编译参数如下:

  1.  输入音频参数

wav amr 与mp3格式都自带头部, 含有采样率 编码 多声道等信息。而pcm为原始音频信息,没有类似头部。 wav(pcm编码)格式,仅仅在同样参数的pcm文件加了个几百k的文件头。

输入 wav amr 及mp3格式:

-i  test.wav # 或test.mp3 或者 test.amr

输入 pcm格式: pcm需要额外告知编码格式,采样率,单声道信息

-f s16le -ac 1 -ar 16000 -i 8k.pcm// 单声道 16000 采样率  16bits编码 pcm文件

  1. 输出音频参数

在原始采样率 大于或者接近16000的时候,推荐使用16000的采样率。 8000的采样率会降低识别效果。 输出wav和amr格式时,如果不指定输出编码器的haunt,ffmpeg会选取默认编码器。

输出pcm音频

-f s16le -ac 1 -ar 16000 16k.pcm  // 单声道 16000 采样率 16bits编码 pcm文件

输出wav 音频:

-ac 1 -ar 16000 16k.wav // 单声道 16000 采样率 16bits编码 pcm编码的wav文件

  1. 输出amr-nb 音频 :全称是:Adaptive Multi-Rate,自适应多速率

,是一种音频编码文件格式,专用于有效地压缩语音频率。在带宽不是瓶颈的情况下,不建议选择这种格式,解压需要百度服务器额外的耗时amr-nb格式只能选 8000采样率。bit rates越高音质越好,但是文件越大。 bit rates 4.75k, 5.15k, 5.9k, 6.7k, 7.4k, 7.95k, 10.2k or 12.2k

8000的采样率及有损压缩会降低识别效果。如果原始采样率大于16000,请使用 amr-wb格式。

-ac 1 -ar 8000 -ab 12.2k 8k-122.amr

// 8000 采样率 12.2 bitRates

输出 amr-wb 格式,采样率 16000。 bit rates越高音质越好,但是文件越大。 6600 8850 12650 14250 15850 18250 19850 23050 23850

-acodec amr_wb -ac 1 -ar 16000 -ab 23850 16k-23850.amr

    1. 常用参数
  • -y 覆盖同名文件
  • -v 日志输出基本 如 -v ERROR -v quiet 等
    1. 参数拼接

ffmpeg {常用参数} {输入音频参数} {输出音频参数}

示例: 输入是 32000HZ的单声道 16bits pcm文件。查询之前的输入参数为 “ -f s16le -ac 1 -ar 32000 -i test32.pcm” 输出是 16000HZ的单声道 16bits pcm文件。查询之前的输出参数为 “-f s16le -ac 1 -ar 16000 16k.pcm” 常用参数选择 -y

合并如下:

ffmpeg  -y  -f s16le -ac 1 -ar 32000  -i test32.pcm -f s16le -ac 1 -ar 16000 16k.pcm

  1. 查看音频格式ffprobe使用

查看语音合成生成的MP3格式信息:

ffprobe -v quiet -print_format json -show_streams  aidemo.mp3

返回如下

{

"streams": [

{

"index": 0,

"codec_name": "mp3", // mp3 格式

"codec_long_name": "MP3 (MPEG audio layer 3)",

"codec_type": "audio",

"codec_time_base": "1/16000",

"codec_tag_string": "[0][0][0][0]",

"codec_tag": "0x0000",

"sample_fmt": "s16p",

"sample_rate": "16000", // 16000采样率

"channels": 1, // 单声道

"channel_layout": "mono",

"bits_per_sample": 0,

"r_frame_rate": "0/0",

"avg_frame_rate": "0/0",

"time_base": "1/14112000",

"start_pts": 0,

"start_time": "0.000000",

"duration_ts": 259096320,

"duration": "18.360000",

"bit_rate": "16000",

"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

}

}

]

}

  1. pcm文件音频时长计算

同图像bmp文件一样,pcm文件保存的是未压缩的音频信息。 16bits 编码是指,每次采样的音频信息用2个字节保存。可以对比下bmp文件用分别用2个字节保存RGB颜色的信息。 16000采样率 是指 1秒钟采样 16000次。常见的音频是44100HZ,即一秒采样44100次。 单声道: 只有一个声道。

根据这些信息,我们可以计算: 1秒的16000采样率音频文件大小是 2*16000 = 32000字节 ,约为32K 1秒的8000采样率音频文件大小是 2*8000 = 16000字节 ,约为 16K

如果已知录音时长,可以根据文件的大小计算采样率是否正常。

音频文件转码工具文档 目录 1. 音频文件转码 1 1.1. 简介 1 1.2. 转换命令示例 2 1.3. wav 文件转 16k 16bits 位深的单声道pcm文件 2 1.4. mp3 文件转相关推荐

  1. JAVA毕业设计个人资金账户管理计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计个人资金账户管理计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计个人资金账户管理计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开发语 ...

  2. JAVA毕业设计航空订票系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计航空订票系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计航空订票系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  3. JAVA毕业设计高校学生资助管理信息系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计高校学生资助管理信息系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计高校学生资助管理信息系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B ...

  4. JAVA毕业设计购物网站设计计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计购物网站设计计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计购物网站设计计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  5. JAVA毕业设计健身房信息管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计健身房信息管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计健身房信息管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开 ...

  6. JAVA毕业设计vue健康餐饮管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计vue健康餐饮管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue健康餐饮管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈 ...

  7. JAVA毕业设计酒店管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计酒店管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计酒店管理系统设计与实现计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S ...

  8. JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计HTML5企业员工管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构 ...

  9. JAVA毕业设计-智慧农业水果销售系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计-智慧农业水果销售系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计-智慧农业水果销售系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S ...

  10. JAVA毕业设计淮安城市开放大学实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计淮安城市开放大学实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计淮安城市开放大学实习实训管理系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈 ...

最新文章

  1. ER图转为关系模式(超详细,超简单)
  2. Kubernetes — CNI 规范
  3. 自己搭建的邮件系统不能发往gmail、hotmail等问题解决
  4. 学习网站分享 - 菜鸟教程
  5. 把类成员改成指针_C++之this指针
  6. 全国计算机等级考试题库二级C操作题100套(第77套)
  7. 【POJ - 1028】 Web Navigation( 栈 or 模拟队列 )
  8. sizeof与offsetof有关的结构体详解
  9. html input 字体颜色_HTML常用标签汇总
  10. Python3.7下载与安装pygame
  11. Qt视频直播软件--项目实战(Day3)
  12. 八个经典的java多线程编程题目
  13. 翰文付费打印后还有水印吗_翰文进度计划编制系统去除水印中文增强版
  14. 计算机睡眠功能命令,使用WINDOWS命令行进入睡眠模式
  15. BZOJ_3689_异或之_可持久化Trie+堆
  16. iOS笔试知识点集锦
  17. 汉字转拼音 关于佛字转成了fu
  18. 文件删除终结者 v1.2 免费
  19. [DA45] 时间序列预测上证指数
  20. 激光雷达在自动驾驶中的关键技术应用

热门文章

  1. php 发送图片,php+curl 发送图片处理代码分享
  2. python闭包有什么作用_闭包在实际开发中有什么用?
  3. 汉化pycharm,中文
  4. Spring生态系统(Spring可能大家都在用,很少去关注整体架构)
  5. 什么是HotSpot VM 深入理解Java虚拟机 JVM
  6. ArcGIS For Flex学习之Mapping---Add LODs for extra zooming
  7. Android开发学习路线图
  8. 预处理命令之条件编译(#ifdef,#endif,#else)
  9. MySQL-第十五篇使用连接池管理连接
  10. IDEA阅读spring源码并调试