yansheng.wang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2012年6月26日

摘要: 1. 算法原理合唱即多人一起唱歌,以下是算法的原理图:/* * * * gain-in ___ * ibuff -----+--------------------------------------------->| | * | _________ | | * | | | * level 1 | | ... 阅读全文
posted @ 2012-06-26 08:03 小小程序员001 阅读(380) 评论(0) 推荐(0) 编辑

摘要: 1.1混响的作用与基本原理混响器即是人为地给声音加上混响的效果。这样通过改变场景的混响时间,可以对比较“干”的信号进行再加工,增加空间感,提高声音的丰满度,同时可以制造一些特殊的声音效果,如回声等,通过改变混响声和直达声的比例,还可以体现声音的远近感和空间感。下图一直观的解释了混响的简单原理。为了研究的方便,声学上把混响分为几个部份,规定了一些习惯用语。混响的第一个声音也就是直达声(Direct sound),也就是源声音,在效果器里叫做 dry out (干声输出),随后的几个明显的相隔比较开的声音叫做“早反射声”(Early reflectedsounds),它们都是只经过几次反射就到达了 阅读全文
posted @ 2012-06-26 07:48 小小程序员001 阅读(505) 评论(0) 推荐(0) 编辑

2012年6月20日

摘要: 1. malloc原型:void * malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块返回值:成功返回地址,失败返回NULL说明:malloc的全称是memory allocation,中文叫动态内存分配2. calloc原型:void *calloc(unsigned n,unsigned size);功能:在内存的动态存储区中分配n个长度为size的连续空间返回值:成功返回地址,失败返回NULL说明:calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据。3. realloc原型 阅读全文
posted @ 2012-06-20 13:43 小小程序员001 阅读(337) 评论(0) 推荐(0) 编辑

2012年6月19日

摘要: 简介算法速度快 SIMD(SSE)指令支持 低内存 高质量该算法是基于最原始的重采样算法: Smith, Julius O. Digital Audio ResamplingHome Page Center for Computer Research in Music and Acoustics (CCRMA), Stanford University, 2007. Web published at http://www-ccrma.stanford.edu/~jos/resample/.这里使用cubic interpolation代替linear interpolation。减少CPU时间 阅读全文
posted @ 2012-06-19 09:18 小小程序员001 阅读(1583) 评论(0) 推荐(0) 编辑

2012年6月18日

摘要: 对于频繁读写的字节流缓存,环形字节流可以重复使用空闲的内存,原理类似于环形队列。代码参考speex,代码已经经过测试使用。/** * @file circular_buffer.h * @brief * * 循环字节流缓存,能够自动增加缓存,参考speex * * @author yswang * @version 1.0 * @date 2012年6月18日 * * @see * * @par 版本记录: * <table border=1> * <tr> <th>版本 <th>日期 <th>作者 <th>备注 < 阅读全文
posted @ 2012-06-18 17:42 小小程序员001 阅读(272) 评论(0) 推荐(0) 编辑

2012年6月17日

摘要: #ifdef WORDS_BIGENDIAN # define swap_uint16(x) (x) # define swap_sint16(x) (x) # define swap_uint32(x) (x) # define swap_number64(x) (x) #else /* !defined WORDS_BIGENDIAN */ /* swap 16 bits integers */ # define swap_uint16(x) ((uint16)((((x) & 0x00FFU) << 8) | \ (((x) & 0xFF00U) >&g 阅读全文
posted @ 2012-06-17 21:45 小小程序员001 阅读(314) 评论(0) 推荐(0) 编辑

摘要: 头文件:#ifndef _MP3_H_ #define _MP3_H_ #include "stdint.h" enum { BITRATE_MPEG1, BITRATE_MPEG2, BITRATE_NUM }; enum { SAMPLERATE_MPEG1, SAMPLERATE_MPEG2, SAMPLERATE_MPEG25, SAMPLERATE_NUM }; #define MP3_FRAME_SYNC 0xFFE00000 #define MASK_VERSION 0x00180000 #define SHIFT_VERSION 19 #... 阅读全文
posted @ 2012-06-17 21:22 小小程序员001 阅读(587) 评论(1) 推荐(0) 编辑

摘要: MP3文件格式解析Peter Lee 2008-06-05http://blog.csdn.net/sunshine1314/article/details/2514322目录一、概述二、整个MP3文件结构三、MP3帧格式1.帧头格式2. MAIN_DATA四、ID3标准1. ID3V12. ID3V2五、MP3文件实例剖析六、资料一、概述MP3 文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。MP3 的全称应为 MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 阅读全文
posted @ 2012-06-17 20:04 小小程序员001 阅读(4867) 评论(2) 推荐(0) 编辑

2012年6月14日

摘要: Shine MP3 Encoder on Alchemyhttp://code.google.com/p/flash-kikko/简介Shine简单轻量级的mp3编码器,是c语言开发的,也是LAME研发小组开发。特性:MP3编码器支持单声道和双声道wav(没有时间限制)在flash中不是阻塞处理的能很好的返回错误信息使用:import fr.kikko.lab.ShineMP3Encoder; private function encodeToMP3(wavData:ByteArray):void { mp3Encoder = new ShineMP3Encoder(wavData... 阅读全文
posted @ 2012-06-14 08:54 小小程序员001 阅读(720) 评论(0) 推荐(0) 编辑

摘要: 1. 音频重采样是音频处理中的最常见的处理,常见的音频采样率有 8000,16000,22500,32000,44100。2. 可以使用ffmpeg命令行处理:ffmpeg -i in.wav -ar 44100 out.wav3.下面有代码来实现16k到44k的转换int resample(short * in, int inlen, short * out, in outlen) { for (int n = 0; n < outlen; ++n) { // 解决原唱16K --> 44K index = (float)(n) / (44100.0 / 16000.0); .. 阅读全文
posted @ 2012-06-14 08:33 小小程序员001 阅读(921) 评论(0) 推荐(0) 编辑