文章目录

  • I . TarsosDSP 函数库简介
  • II . TarsosDSP 功能
  • III . TarsosDSP 相关资源链接 ( 官方资料 )
  • IV . TarsosDSP 源码和相关资源收集 ( 官方资料 )
  • V . TarsosDSP 示例应用
  • VI . TarsosDSP 源码路径解析

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 示例应用 : 提供 232323 个示例应用 ;

V . TarsosDSP 示例应用


1 . 声音检测 ( SoundDetector ) : 计算 音频采样 的响度 , 当输入的音频样本声音响度超过一个阈值时 , 会触发指定的事件 ;

2 . 音高检测 ( PitchDetector ) : 实时的音频样本 音高 / 频率 监测 , 监测结果是 频率值 ( 单位 Hz 赫兹 ) 和 该频率对应的 概率 ;

3 . 敲击检测 ( PercussionDetector ) : 敲击检测 , 监测打击乐器的第一下瞬间 ;

① 示例 : 如 , 拍手动作 触发 某事件 ;

② 涉及参数 : 该示例中涉及到 声音样本的 频率 和 频率对应的概率 , 这两个参数对检测算法的影响 ;

4 . UtterAsterisk : 这是一个游戏 ;

① 游戏目标 : 辅助唱歌 , 然后尽可能的接近某个旋律 ;

② 实现原理 : 使用 YIN / MPM 算法 , 实现 实时的 频率 / 音高 检测 , 检测器 频率值 ;

5 . Java 频谱图 ( Spectrogram in Java ) :

① 显示内容 : 显示 音频文件 , 或 音频流 的频谱图 和 检测到的 频率信息 ;

② 基本频率 : 音频样本的频率有很多 , 根据某种特征要求 , 选择其中一个作为其基本频率 ;

③ 运行 : 示例中的 jar 程序无法运行 , 需要安装 JDK 1.7 和 Ant 构建脚本 , 自己编译一次 , 就可以运行了 ;

6 . Goertzel DTMF 解码器 : 使用 Goertzel 算法实现 ; 提供了一个 UI 界面展示其解码过程 ;

7 . 音频时间延长 ( Audio Time Stretching ) : 使用纯 Java 代码实现 WSOLA 算法 , 这是一种变速不变调的音频处理算法 ; 使用 WSOLA 算法可以在不改变声音 频率 / 音高 的前提下 , 修改音频的播放速度 , 即播放器常用的倍速播放功能 ; 好多比较水的音频播放器倍速播放的时候 , 声音音调都变了 , 如 …

8 . 音频特征提取 ( Audio Feature Extraction ) : 这是一个简单的命令行程序 , 可以用于提取音频特征 ;

9 . 音频合成器 ( Audio Feature Extraction ) : 也是一个命令行程序 , 可以用于音频合成 ;

10 . 变调 ( Pitch Shifting ) : 用于改变音频样本的 音高 / 频率 ; 既可改变从麦克风实时输入的音频流的频率 , 也可以改变一个音频文件的 声音频率 ; 该应用同时提供了命令行功能 ;

VI . TarsosDSP 源码路径解析


1 . TarsosDSP GitHub 源码地址 ( 重点 ) : GitHub - JorenSix / TarsosDSP

2 . 源码根目录 : 从上面 GitHub 上下载源码 , 先看根目录如下 :

3 . 源码目录 src : src 目录是 TarsosDSP 的源码目录 ;

src/core : 主要的核心功能源码 ;

src/test : DSP 功能的单元测试代码 , 在这个目录 ;

src/examples : TarsosDSP 的示例代码 , 提供了 Java 的 Swing 界面 ;

src/android : 涉及到 Android 的音频 IO , 需要依赖 Android 的环境 ;

src/jvm : 涉及到 JRE 的音频 IO , 需要依赖 Java 环境 ;

【TarsosDSP】TarsosDSP 简介 ( TarsosDSP 功能 | 相关链接 | 源码和相关资源收集 | TarsosDSP 示例应用 | TarsosDSP 源码路径解析 )相关推荐

  1. 虚拟资源发布系统源码PHP,虚拟资源商品自动发货系统商城源码

    虚拟商品自动发货系统是一套功能强大的虚拟商品自动发货系统/文章付费阅读系统,无需人工值守,客户在线购买即可自动完成交易.支持缺货提醒/快捷登录/回收站/免登录购买等多种功能. [模板说明]试用版自带一 ...

  2. 图元变形lisp源码_收集和整理的lisp源码 收集整理出来的lisp源代码 - 下载 - 搜珍网...

    压缩包 : d376dc2568cd94474be5e8006a7f032.rar 列表 收集和整理的lisp源码/AALINE--绘制多线.LSP 收集和整理的lisp源码/aat--自动标注圆.椭 ...

  3. 【Windows 逆向】CheatEngine 工具 ( CheatEngine 简介 | 使用 Lazarus 编译 CE 源码 | CheatEngine 相关文档资料 )

    文章目录 一.CheatEngine 简介 二.使用 Lazarus 编译 CE 源码 三.CheatEngine 相关文档资料 一.CheatEngine 简介 CheatEngine 简称 CE ...

  4. AIGC:ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等)、使用方法(七类任务)、案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略

    AIGC:ChatGPT(一个里程碑式的对话聊天机器人)的简介(意义/功能/核心技术等).使用方法(七类任务).案例应用(提问基础性/事实性/逻辑性/创造性/开放性的问题以及编程相关)之详细攻略 导读 ...

  5. 2010年01期《程序员》配套源码及相关链接

    为了方便大家查阅,现把2010年01期<程序员>杂志中相关链接及代码发布在此: 程序天下事 P15页,推荐资源: 诗剑书生的专栏:http://blog.csdn.net/axman/ P ...

  6. FD.io VPP 20.09版本正式发布:往期VPP文章回顾+下载地址+相关链接

    目录 下载RPM/DEB包 往期文章回顾与推荐 FD.io是一些项目和库的集合,基于DPDK并逐渐演化,支持在通用硬件平台上部署灵活可变的业务.FD.io为软件定义基础设施的开发者提供了一个通用平台, ...

  7. ROS学习笔记------ROS机器人系统设计-----基础编程 day 7 2019/3/2 帅某(URDF机器人建模,urdf功能包的建立,urdf相关模型建立代码已经上传)

    URDF机器人建模 相关urdf代码链接: https://download.csdn.net/download/weixin_43262513/10990016 1.urdf介绍 URDF(Unif ...

  8. 多源迁移学习相关研究回顾

    ©PaperWeekly 原创 · 作者|张玮玮 学校|东北大学硕士 研究方向|情绪识别 迁移学习中大多数工作在研究单个源域到单个目标域的学习,在实际生活中,应用的时候会碰到很多有标注样本的不是来自单 ...

  9. python中的array函数作用_Python中的Array | 数组2(简介和功能)

    相关文章:Python中的数组Array | 1(简介和功能) 以下是更多函数. 1. typecode:此函数返回初始化数组所用的数据类型. 2. itemsize:此函数返回单个数组元素的大小(以 ...

最新文章

  1. poj2602(高精度模拟加法)
  2. 使用JAVA开发微信公众平台(一)——环境搭建与开发接入
  3. javaweb面试一
  4. maven构建SSM工程[应用]1
  5. 【LeetCode每周算法】两数相加
  6. java 文件下载,中文表名,中文内容
  7. java生成pdf怎么合并行或者列_Java基础之PDF文件的合并
  8. T-SQL的进阶:超越基本级别3:构建相关子查询——701小组
  9. 如何利用用户业务行为画像,做套餐与用户之间个性化智能匹配模型?
  10. http状态码 以及请求响应头相关
  11. Atitit 常见项目角色与职责 目录 1.1. 常见项目角色与职责 1 1.2. 解决问题思路:一般百度,问同事,问上一级 1 1.3. 解决问题时限:与跳过法 1 1.4. 解决方法,一般实
  12. 高通模式9008模式linux,高通芯片如何进入9008模式深度救砖
  13. DOSBOX的安装及ASM文件的编译
  14. 下载youtube 在线工具_5款不用下载的免费在线做图工具,满足你日常图片处理需求...
  15. Rust中国大会议程介绍:分会场 下
  16. 三天搭建内容推荐系统——标签挖掘、画像搭建、算法推荐
  17. DeepMind AlphaStar星际争霸2首秀:Demo很强大,但现场比赛输了
  18. 使用WinRT OCR API的WPF中的OCR
  19. rtmp一些状态信息详解-as连接FMS服务器报错状态汇总~~
  20. 基于ip-iq变换的谐波检测算法,并联型APF 有源电力滤波器 谐波电流检测

热门文章

  1. Fedora下校园网上网指南(802.1xDrcom)
  2. C#里的委托和事件实现 (转)
  3. 创建带有关联的 XML 架构的 XML 文件 从 XML 文件创建 XML 架构
  4. 从Openvswitch代码看网络包的旅程
  5. MATLAB之界面介绍
  6. Java微信二次开发(八)
  7. GNU C和ANSI C的区别
  8. Educational Codeforces Round 7 B. The Time 水题
  9. VMWARE workstation导致母机反应变慢的现象
  10. ASP.NET操作Word文档(转)