近期偶然间看到一个开源项目minimp3 Minimalistic MP3 decoder single header library 项目地址: https://github.com/lieff/minimp3 单文件头的最小mp3解码器. 一直很想抽时间好好看上一看. 最好的学习方式就是写个实用性的工程项目. 例如实现mp3转wav格式. 嗯,这篇博文就是这么来的. 阅读了下minimp3的源码,有一两处小bug, 这个解码算法可以进一步提速优化的地方还有不少. 后面有时间,再好好庖丁解牛.…
上周看到一个变调算法,挺有意思的,原本计划尝试用来润色TTS合成效果的. 实测感觉还需要进一步改进,待有空再思考改进方案. 算法细节原文,移步链接: http://blogs.zynaptiq.com/bernsee/pitch-shifting-using-the-ft/ C++开源的项目,比较老的一个项目了. 源码下载地址: http://blogs.zynaptiq.com/bernsee/download/ 本人对这份算法源码进行简单的优化调整. 稍微提升了一点性能. 修改后的完整代码:…
在特定的应用场景下,有时候我们只是想获取图片的宽高, 但不想通过解码图片才取得这个信息. 预先知道图片的宽高信息,进而提速图片加载,预处理等相关操作以提升体验. 在stackoverflow有一篇相关讨论. Get Image size WITHOUT loading image into memoryhttp://stackoverflow.com/questions/15800704/python-get-image-size-without-loading-image-into-memor…
在特定的应用场景下,有时候我们只是想获取图片的宽高, 但不想通过解码图片才取得这个信息. 预先知道图片的宽高信息,进而提速图片加载,预处理等相关操作以提升体验. 在stackoverflow有一篇相关讨论. Get Image size WITHOUT loading image into memoryhttp://stackoverflow.com/questions/15800704/python-get-image-size-without-loading-image-into-memor…
前面提及到<大话音频变声原理 附简单示例代码>与<声音变调算法PitchShift(模拟汤姆猫) 附完整C++算法实现代码> 都稍微讲过变声的原理和具体实现. 大家都知道,算法从实现到最后工程应用,中间的环节和问题特别多. 尤其是编码的架构设计,好的数据结构和代码逻辑封装肯定是可复用,组件化的. 前几天写完<音频识别算法思考与阶段性小结>的时候, 我也提及到了. 会做一些算法编码优化相关的分享. 而有时候我总觉得文字表达很苍白, 所以我尽可能地把代码写得简洁易懂, 一方…
翻译 By Long Luo 原文链接:Android Audio: Play a WAV file on an AudioTrack 译者注: 1. 因为这是技术文章,所以有些词句使用原文,表达更准确. 2. 因为水平有效,有些地方可能翻译的不够准确,如有不当之处,敬请批评指正. 3. 针对某些语句.适当补充了上下文及更适合中文阅读,尽量做到信达雅. 假设你已经成功地了解了关于AudioTrack的一些话题.那么你可能享受它带来的优点,比如低延迟(在STATIC(静态)模式),可以生成流式音频…
说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音识别格式不支持mp3格式的 百度php语音识别接口 http://yuyin.baidu.com/docs/asr/188 但是有支持wav格式的,于是又要想办法怎么把mp3格式转为wav格式 在百度搜了一大圈 最后知道说要使用一个ffmpeg组件 于是继续搜资料 看看Linux服务器如何安装ffm…
最近需要用到语音合成功能,网上查阅了一番,发现可以使用腾讯云的语音合成API来完成这个功能,但是腾讯云的api返回的是wav格式的音频文件,这个格式的文件有些不通用,因此需要转换成mp3格式的文件.      jave2(Java音频视频编码器)库是Java对ffmpeg的包装,它可以很方便的实现视频音频格式的转换,本文简单记录一下将wav格式的音频转换成mp3格式的音频.      jave2 对 jdk的要求以及支持的平台 需求:     将一段wav格式的音频转换成mp3格式的音频实现思路…
公司在开发一个小程序语音红包,现在遇到的问题就是通过微信的小程序文档接口拿到的录音文件要么是silk格式的,要么是mp3格式的 但是呢,如果要调用百度的语音接口,又必须是wav格式的.也就是说通过微信小程序接口拿到的两种格式,都无法直接调用百度的语音识别接口. 必需想办法来转换成wav格式的.百度上搜了各种解决方案,有些是需要安装软件的,但是无法实现自动转,比如我给一个这个silk的url地址,能否直接返回wav格式的给我. 正在摸索中...还没解决...看看大家有没有什么好的方法? 我,秋峰,…
Have you been in need of converting mp3 audios to wav audios?  If so, the skill in this article provides you a chance to manage the mp3-to-wav conversion by yourself. The wave audio files are useful because they retain the first-generation archived f…
Android中使用speex将PCM录音格式转Wav格式 2013-09-17 17:24:00|  分类: android |  标签:android  speex  wav  |举报|字号 订阅     下载LOFTER客户端     1>     平台支持录音格式情况 Android Cocos2d-x 2>     我的代码 Android下使用speex保存录音格式wav 参考: 1.       PCM录音数据转Wav格式(java版) 使用该文章发现,保存的wav格式声音有些失…
1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit  mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道; 当然也可以有 16bit 的单声道或 8bit 的立体声, 等等. 采样率是指:声音信号在“模→数”转换过程中单位时间…
1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit  mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道; 当然也可以有 16bit 的单声道或 8bit 的立体声, 等等. 采样率是指:声音信号在“模→数”转换过程中单位时间…
我们的司信项目又有了新的需求,就是要做会议室.然而需求却很纠结,要继续按照原来发语音消息那样的形式来实现这个会议的功能,还要实现语音播放的计时,暂停,语音的拼接,还要绘制频谱图等等. 如果是wav,mp3不论你怎么拼接,绘制频谱图,我也没有问题,网上都有现成的例子.然而这一次居然让用speex的音频做这一切. 于是看了司信之前的发语音消息部分speex的代码,天啊,人家录的时候这是实时录音实时编码的好不好,人家放的时候也是实时解码实时播放的好不好.你这让我怎么通过 一个speex文件就得到全部的…
//MmSystem播放Wav格式声音 //MmSystem 支持 *.wav声音格式 snd ->SoundRecorderuses MmSystem; //引用MmSystem//播放系统声音{.Default //这个只要是字符串('str')就好MailBeepSystemExclamationSystemExitSystemHand}PlaySound ('SystemExit',0, snd_Async);//PChar类型字符串//播放列表框中的声音PlaySound(PChar(…
之前写过了如何将speex与wav格式的音频互相转换,如果没有看过的请看一下连接 http://www.cnblogs.com/dongweiq/p/4515186.html 虽然自己实现了相关的压缩算法,但是发现还是与gauss的压缩比例差了一些,一部分是参数设置的问题,另外一部分是没有使用ogg的问题. 本来想研究一下gauss的ogg算法,然后将他录制的音频转为wav格式,再继续进行后面的频谱绘制之类的. 在后续的研究gauss的解码过程,他是先解了ogg的格式,然后分段,然后去掉spee…
最近在做傅里叶变换和小波变换时经常要通过显示波形来检验算法,但通过visual studio之类显示波形又显得麻烦,而且不能跨平台. CImg是一个跨平台的C++的图像处理库,提供的图像处理等功能十分强大,而且加入项目中十分轻便,只需将头文件包含在项目中即可,十分轻便. 可自行到http://www.cimg.eu/下载 利用它来在linux.Mac OS X中显示波形,再合适不过了,下面是音频波形显示的代码. 主函数 main.cpp #include <iostream> #include…
wav格式文件是常见的录音文件,是声音波形文件格式之一,wav 文件由文件头和数据体两部分组成. 文件头是我们在做录音保存到文件的时候,要存储的文件的说明信息,播放器要通过文件头的相关信息去读取数据播放文件,下面是wav文件头的格式说明. 端模式 field name Size 说明 big ChunkID 4 文件头标识,一般就是"RIFF" 四个字母 little ChunkSize 4 整个数据文件的大小,不包括上面ID和Size本身 big Format 4 一般就是"…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PCM编码及Waveform音频文件格式. 嵌入式里有时候也会和音频打交道,比如最近特别火的智能音箱产品,离不开前端的音频信号采集.降噪,中间的语音识别(ASR).自然语言处理(NLP),以及后端的文语合成(TTS).音频播放.音频信号采集是处理声音的第一步,要采集音频就离不开PCM编码,音频采集完成自然需要保存,waveform格式(.wav)是一种最经典的音频文件格式.今天痞子衡就给大家详细介绍PCM编码以及waveform文件…
html5的audio标签只在火狐下支持wav格式的音频播放,无法兼容IE和google , 使用audioplayer.js 基本上能支持大部分浏览器播放wav音频文件,经测试IE.火狐.google浏览器都可以播放编码格式为: 的wav格式的音频 当audio标签不支持或者audio不能播放相应格式的文件时,播放器将使用迷你模式,使用embed元素来播放音频,支持的功能将较少,并且各浏览器支持功能不一致 使用方法: 1.html中加入audio标签 <audio controls="c…
经过测试wav格式文件仅支持PCM 8000kHz 16bit 单声道,非常蛋疼的一个原因,排查了好久! 关于C#支持的一些格式(Mono 单声道 .Stereo 立体声道) // Standard PCM wave formats SAFT8kHz8BitMono = 4 SAFT8kHz8BitStereo = 5 SAFT8kHz16BitMono = 6 SAFT8kHz16BitStereo = 7 SAFT11kHz8BitMono = 8 SAFT11kHz8BitStereo =…
应宝哥建议以及更好的交流学习,这篇开始使用中文,英语就先放一放吧! 要使用PJSIP中的PJMEDIA首先我们需要搭建好它所需要的环境. [环境搭建与调试] 1 在 工具 加入pjmedia所需要的包含文件以及库文件 2 在 项目属性 中的加入包含文件以及库文件和具体使用到的库名 3 编译过程中出现无法解析外部符号时,自习观察报错的提示,(如关键字可能为srtp,可以去工程文件下的third_party中去添加相关库或者包含文件). [实例功能] 播放一个wav格式的文件. 实例出处:http:…
将PCM格式存储成WAV格式文件 WAV比PCM多44个字节(在文件头位置多) 摘自:https://blog.csdn.net/u012173922/article/details/78849076 2017年12月20日 08:11:00 酒后午夜行为艺术家 阅读数 2815  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012173922/article/details/78849076 前言:无论是文字,图像还是声音,都必须以一种特…
一,百度百科 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几! WAV打开工具是WINDOW…
前几天无意间看到一个项目rnnoise. 项目地址: https://github.com/xiph/rnnoise 基于RNN的音频降噪算法. 采用的是 GRU/LSTM 模型. 阅读下训练代码,可惜的是作者没有提供数据训练集. 不过基本可以断定他采用的数据集里,肯定有urbansound8k. urbansound8k 数据集地址: https://serv.cusp.nyu.edu/projects/urbansounddataset/urbansound8k.html 也可以考虑采用用作…
声明一下:这些关于ffmpeg的文章仅仅是用于记录我的学习历程和以便于以后查阅,文章中的一些文字可能是直接摘自于其它文章.书籍或者文献,学习ffmpeg相关知识是为了使用在Android上,我也才是刚開始接触学习,如有不正确之处还请指出. 音频格式是指要在计算机内播放或是处理音频文件,也就是要对声音文件进行数.模转换,这个过程相同由採样和量化构成.人耳所能听到的声音.最低的频率是从20HZ起一直到最高频率20KHZ.20KHZ以上人耳是听不到的,因此音频文件格式的最大带宽是20KHz,故而採样速…
Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子). 1.jbpm4.4 测试环境搭建 2.Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1. 整合环境搭建 3.jbpm4.4 基础知识 4.整合过程中常见问题的解决 5.请假流程例子( s2sh+jbpm ) 6.总结及参考文章 jbpm4.4测试环境搭建 刚接触 jbpm 第一件事就是快速搭建环境,测试 jbpm 所给的例子. …
MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用MongoDB的客户端维护数据 MongoDB提供的C#驱动 MongoDB不支持在查询数据库时使用Join操作 获取MongoDB服务端状态 [目标]:本文将以实战的形式,向您展示如何用C#访问MongoDB,完成常见的数据库操作任务, 同时,也将介绍MongoDB的客户端(命令行工作模式)以及一些基…
2年前在学习图像算法的时候看到一个文档倾斜矫正的算法. 也就是说能将一些文档图像进行旋转矫正, 当然这个算法一般用于一些文档扫描软件做后处理 或者用于ocr 文字识别做前处理. 相关的关键词: 抗倾斜 反倾斜  Deskew 等等. 最简单算法实现思路,采用 霍夫变换(Hough Transform)进行直线检测, 当然也可以用霍夫变换检测圆. 在倾斜矫正算法中,自然就是检测直线. 通过对检测出来的直线进行角度判断, 一般取 认可度最高的几条直线进行计算, 最后求取均衡后的角度值. 进行图像角度…
本篇项目地址,名字是AudioRecord录音(能暂停,将pch转换为wav),求starhttps://github.com/979451341/Audio-and-video-learning-materials 先来段官方说明 1.AndioRecord大概说明 AndioRecord类的主要功能是让各种JAVA应用能够管理音频资源,以便它们通过此类能够录制声音相关的硬件所收集的声音.此功能的实现就是通过”pulling”(读取)AudioRecord对象的声音数据来完成的.在录音过程中,…