I . TarsosDSP 函数库简介
1 . TarsosDSP 是 Java 库 : TarsosDSP 是一个音频处理 Java 库 , 该库是纯 Java 实现 , 没有依赖任何外部的第三方库 ;
2 . TarsosDSP 库的目的 : 提供简单易用的接口 , 调用音频处理算法实现相关业务逻辑 ;
3 . TarsosDSP 库的定位 : 数字信号处理 ( DSP ) 算法都很复杂 , 涉及傅里叶变换 , 数字滤波器等算法 , 复变函数等数学理论 , 想想就很复杂 ;
① 小巧简单 : TarsosDSP 库在旨在减小函数库库的体量 , 可以简单地调用 ;
② 功能丰富 : TarsosDSP 库目的是为了提供强大齐全的功能 , 可以胜任任何实际应用中的业务逻辑 ;
③ 平衡点 : 明显上面两个功能是相悖的 , 功能越强大 , 函数调用越复杂 , 函数库体量越大 , TarsosDSP 目的是找到二者的一个平衡点 , 既能保证简介 , 有尽量提供丰富的 DSP 处理功能 ;
II . TarsosDSP 功能
1 . 声音起始检测 : A percussion onset detector , 检测声音的第一下的发音瞬间 ;
2 . 音高检测算法 : 给一个音频样本 , 检测该样本的声音频率 , 音高 , 可以用于乐器调音器实现 , 声音识别领域 ; TarsosDSP 中提供了多个该该类型算法 , 如 : YIN , Mcleod Pitch method 等 ;
3 . 动态音高检测算法 : Dynamic Wavelet Algorithm Pitch Tracking , 动态的频率 , 音高检测算法 , 分析动态输入的音频流中的音高频率 ; ( 个人理解 )
4 . 解码算法 : 实现了 Goertzel DTMF 解码算法 , 用于将 MP3 等压缩格式的音频 , 解码成 PCM , WAV 格式的音频 ;
5 . 时间拉伸算法 : WSOLA 算法 , 拉伸音频的时间 , 变速不变调算法 , 等音频处理 , 如音频中的倍速播放功能 ;
6 . 重采样算法 : 改变音频的采样率 , 声道数 , 采样大小等音频属性 , 将 44100 Hz , 立体声 , 32 位采样的音频 , 转为 8000Hz , 单声道 , 8 位采样 , 瞬间将音频大小缩小了 40 倍 , 当然音质也变垃圾了 ;
7 . 过滤器 : 过滤杂音 , 噪音 等 ;
8 . 简单的合成器 : 合成多个声音到同一个声道 ;
9 . 音频效果器 : 为音频添加诸如 , 混响 , 重低音 , 环绕音 , 均衡器 等音频效果器 ;
10 . 音高转换算法 : 变声器算法 , 将声音变为萝莉音 , 大叔音 , 男声变女声 等操作 ;
这是一个很好的 DSP 算法学习平台 , 如果将 TarsosDSP 的代码及内部的原理都理解了 , 算是一个入门级的音频算法工程师了 ;
III . TarsosDSP 相关资源链接 ( 官方资料 )
1 . TarsosDSP GitHub 源码地址 ( 重点 ) : GitHub - JorenSix / TarsosDSP
① TarsosDSP 各个版本资源地址 ( 文档 / 代码示例 / 各平台函数库 ) : Index of /releases/TarsosDSP/
② TarsosDSP 最新版本资源地址 ( 文档 / 代码示例 / 各平台函数库 ) : Index of /releases/TarsosDSP/TarsosDSP-latest/
2 . TarsosDSP 详细资源地址 :
① TarsosDSP 文档地址 : TarsosDSP latest Documentation
② TarsosDSP 示例地址 : TarsosDSP latest Examples
③ TarsosDSP Java 函数库下载地址 : TarsosDSP-Android-latest.jar
④ TarsosDSP Android 函数库下载地址 : TarsosDSP-latest.jar
3 . Rubber Band :
① 项目主页 : Make your audio applications stretchier than ever
② Android 平台使用 Rubber Band 实时音频时间拉伸库 : GitHub - JorenSix / RubberBandJNI ;
4 . TarsosDSP 相关文章目录 : TarsosDSP ;
① Android 平台使用 TarsosDSP : TarsosDSP on Android - Audio Processing in Java on Android ;
② Android 平台 mp3 音频解码 : Decode MP3s and other Audio formats the easy way on Android
③ Java 通过 JNI 控制音频时间拉伸和变调 : Control Audio Time Stretching and Pitch Shifting from Java using Rubber Band And JNI
IV . TarsosDSP 源码和相关资源收集 ( 官方资料 )
整理了一上午 , 将目前能找到的官方资料都收集了一遍 ;
1 . 下载地址 : TarsosDSP 资料
2 . TarsosDSP 手册 : 强烈推荐 TarsosDSP-2.3-Manual.pdf 手册 , 绝对是入门的第一手好资料 , 整个手册看完 , 基本能学会 TarsosDSP ;
3 . 整体目录 :
4 . TarsosDSP 函数库 :
① 函数库平台 : 分别提供 Java 和 Android 的函数库 JAR 包 ;
② 附带源码 : 分别提供 带完整源码 和 不带源码的 JAR 包 , 学习开发阶段建议使用 带源码版本的 JAR 包 , 上线时使用不带源码的 JAR 包 , 节省体积 ;
③ 函数库 JDK 版本 : TarsosDSP 源码兼容 JDK 1.6 版本 , JAR 文件都编译为 JDK 1.7 版本 ;
5 . TarsosDSP 示例应用 : 提供 23 2323 个示例应用 ;