问题标签 [tarsosdsp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
466 浏览

java - 使用 TARSOS DSP 从 WavFiles JAVA 中提取 MFCC 的困难

在使用 DTW 计算它们之间的距离之前,我正在尝试使用 TARSOS DSP 库从 wav 文件中提取 MFCC 值。

不幸的是,我无法理解 MFCC 类中的代码如何用于 wav 文件。

我不确定是否需要先将 wav 文件转换为某种数组缓冲区。

请在此链接中查看 MFCC 类的库中的代码。

https://github.com/JorenSix/TarsosDSP/blob/master/src/core/be/tarsos/dsp/mfcc/MFCC.java

如果我能获得有关如何正确使用此代码从 wav 文件中获取 MFCC 值的建议,或者获得有关另一种方法的建议,我将不胜感激。

0 投票
1 回答
83 浏览

android - Tarsos WriterProcessor 不产生输出内容

使用 Tarsos 提供的 WriterProcessor 时无法写入文件。该文件存在,并且没有显示错误。但是文件是空的,播放的时候没有声音。

outputFile 是 1Ko 大,而原始文件是 3 Ko。

0 投票
0 回答
902 浏览

java - 使用 TarsosDSP 在 Android 上对 .wav 文件进行音高评估

我正在尝试编写一个简单的 Android 应用程序,该应用程序在播放时显示 .wav 文件的各种音高。我正在使用 TarsosDSP 进行音高处理并使用 AudioTrack 来播放文件。

在深入研究此处的代码之前,我正在运行带有 JRE 1.8.0 的 Android Studio 3.4.2,并且我的 minSdkVersion 为 23。

根据我对 TarsosDSP 工作原理的理解,我将 wav 流连接到 AudioDispatcher 对象,附加处理器(播放器本身和音高评估器),然后将调度程序分配给一个线程并启动它以启动一切。据我了解,我也可能在做一些愚蠢的事情(某处......)。

我在使用 AudioTrack Builder 时遇到了问题,因为我发现很多示例都使用了现在已弃用的使用 AudioManager.STREAM_MUSIC 的构造函数。

更新:我设法找到或多或少做我想做的事情的人(只需要让谷歌从韩语翻译它): https ://junyoung-jamong.github.io/signal/processing/2019/ 02/09/How-to-use-tarsosDSP-in-Android.html

重构之后,我能够将我正在做的 AudioPlayer 东西移到我的 AudioMethods 类中。

更新 所以在更新代码之后,我让文件正确播放,并且音高评估似乎正在工作,但我只得到两个样本,并且在我真正听到音频播放之前它们在 logcat 中注册。有人可以解释一下吗?另外,如果有人能告诉我如何让它采集两个以上的样本,我想知道这是在哪里设置/计算的。

主要活动

音频方法

0 投票
1 回答
54 浏览

process - 如何使用 Tarsos 从麦克风流式传输、处理和立即播放

我需要从麦克风流式传输,处理声音并立即播放。

我想使用 Tarsos,但我不知道如何让 Tarsos 的 AudioPlayer 立即播放结果。到目前为止,我可以从 mic + process + 另存为 .pcm 文件流式传输。我需要在进程和保存之间添加“立即播放”。

这是代码(不包括方法 processPitch):

0 投票
1 回答
599 浏览

android - 将 FloatArray 音频缓冲区保存到 Android 上的 wav 文件

我在寻找使用 Kotlin 在 Android 上保存从 TarsosDSP 生成的音频数据的 FloatArray 缓冲区时遇到问题。目标是拥有一个 1 秒的音频缓冲区,该缓冲区会不断更新新的缓冲区数据,并丢弃旧数据。我希望在请求时保存此缓冲区。

我尝试使用 TarsosDSP 库找到解决方案,但它想将连续流写入 wav 文件;我需要它限制在一秒钟内,并按需保存。这个 WavFileWriter 看起来很有希望-> https://github.com/philburk/jsyn/blob/master/src/com/jsyn/util/WaveFileWriter.java但是当我将它添加到我的android项目中时,需要javax。直到查找 javax 是什么,我才知道它在 android 中不受支持。试图找到一个可以解决这个问题的库却收效甚微。

0 投票
0 回答
163 浏览

java - 使用 TarsosDSP for Android Java 的拍手检测问题

我在使用 TarsosDSP 检测拍手声音时遇到问题。PitchDetectioHandler 以某种方式工作,但在使用 PercussionOnsetDetector 时,它没有检测到任何东西。

我在这里做错什么了吗?

0 投票
1 回答
330 浏览

java - 如何从 TarsosDSP AudioDispatcher 获取 PCM 16 位数据?

我想从 TarsosDSP AudioDispatcher 获取 PCM 16 位数据。我按照此链接对实时音频流进行音高分析。我得到了想要的结果,但我也想从 AudioDispatcher 获取 PCM 数据。

如何从 AudioDispatcher 或任何其他技术获取所需的 PCM 数据以将我的数据从 android AudioRecord 传递到 AudioDispatcher?

0 投票
0 回答
210 浏览

java - Android:使用来自 TarsosDSP 的 PercussionOnsetDetector 读取振幅/分贝以进行拍手检测

在使用来自 TarsosDSP 的 PercussionOnsetDetector 时,我无法获取振幅/分贝值。我到处进行了研究,但从我的搜索中没有发现任何与我的问题相关的东西。我在使用 TarsosDSP 时尝试过使用 MediaRecorder,但我在处理那个问题时遇到了问题。有没有办法解决这个问题?请告诉我。谢谢你。

这是我的代码:

0 投票
1 回答
66 浏览

java - Android:使用来自 MediaRecorder 的 getMaxAmplitude(),同时使用来自 TarsosDSP 的 PercussionOnsetDetector

我试图从它检测到的每次拍手中获取振幅读数,但每次检测到拍手时,我都会不断IllegalStateException0getMaxAmplitude(). 我做错什么了吗?有没有解决的办法?请告诉我!

0 投票
1 回答
344 浏览

java - 使用 TarsosDSP java android 检测频率低于 40 hz

我正在制作一个 Android 移动应用程序,我一直在尝试使用TarsosDSP检测音高。只有当它大于 43hz 时,它才能很好地工作。但我有一个要求,让它在 40hz 下工作。当我播放声音时,它甚至不会给出低于 43 的结果。是您可以在线生成具有所需频率的曲调的地方。这是代码。