问题标签 [javasound]

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 回答
1600 浏览

java - 音高检测和改变java

我是法国人,如果您无法理解我的某些句子,我很抱歉。无论如何,我在一些主题中看到,由于傅里叶变换,音高可以得到体现,但我并不真正了解如何实现它。此外,我没有找到如何更改 wav 文件的音高,如果可能的话,我正在使用 javaSound 的 wav 和 JLayer 的 mp3 听音乐的 mp3 文件。谢谢

0 投票
3 回答
9094 浏览

java - 循环声音 Java

我正在使用一个我自己根据声音播放方法和一些自定义代码拼凑而成的类。唯一的问题是我不能 100% 确定在 playSoundFile() 方法中复制到输出流的 while 循环是如何工作的。我将非常感谢您对其进行快速解释,以及有关如何将其设置为循环的任何建议(最好不设置计时器以在声音文件的长度上重复调用它)

“我的”代码:

0 投票
2 回答
519 浏览

java - 使用 Java 在基于 Web 的页面上录制/播放音频

我在 javascript 等中找到了很多,在 Java 中找到了基于桌面的,但在基于 Web 的 java 中没有找到。有任何想法吗?

0 投票
5 回答
3846 浏览

java - 声音没有在罐子里播放

我已将所有类文件和资源打包为一个 jar,但在执行时声音文件不会播放。我的包结构是:

代码:

null执行此行时得到一个!

0 投票
1 回答
1269 浏览

java - 已知声源的回声消除 (java + linux)

我正在尝试使语音识别“忽略”它自己的输出(使用文本到语音系统),因此想使用回声消除器。我实际上“知道” tts 输出,我什至可以将它存储为波形文件(或 pcm 或其他),因此不需要用于未知输入的回声消除的整个“估计事物”。但是我真的不知道如何开始。我读到,“speex”对此很有用,但根据其文档,它不适用于 2 个独立的声卡。简而言之:有什么想法吗?这是我当前的设置:

有一个用于输入的麦克风和一个用于输出的扬声器。麦克风非常靠近输出,需要保留在那里。使用 USB 声卡插入麦克风,扬声器连接到普通的板载声音设备。

操作系统是fedora(12),应用程序是用Java编写的......

任何帮助表示赞赏;)

0 投票
2 回答
2090 浏览

java - Java 声音 API 初始化

我使用以下代码在我的游戏中播放声音。

问题是:如果第一次播放声音,应用程序会挂起一小段时间,因为会完成某种初始化工作。之后播放的每个声音都不会显示此行为。如何防止这种情况?

0 投票
2 回答
3524 浏览

java - 带有端口和数据线的 JavaSound 混音器?

JavaSound API 程序员指南中的图表似乎暗示(第 19-20 页)混音器原则上可以同时具有数据线和端口。但是,我想知道是否有人真正看过这种配置?我所见证的是,在相关的地方,混音器成对出现,一个带有源/目标数据线,另一个带有相应的端口。

有没有人目睹了指南中暗示的配置,混合器同时具有端口和数据线(或者我误解了指南)?

0 投票
3 回答
2717 浏览

java - 使用java从wav文件中提取人声

我正在做一个项目,我必须使用 java 从音频 .wav 文件中提取人声。

音频 .wav 文件可能有 3 到 4 种声音,例如狗、猫、音乐和人。我将不得不识别人声,然后从音频 .wav 文件中提取该部分。

我正在使用FFT.javaComplex.java

现在我编写了一个 AudioFileReader 类,它从硬盘驱动器读取 audio.wav 文件,然后将其转换为字节数组。然后使用上面提到的 FFT.java 和 Complex.java 来应用 FFT.fft(bytesArray),这给了我 Complex 数组作为回报;

现在的问题是如何从返回的 Complex 数组中提取人类声音字节模式......有谁知道我如何能够做到这一点?


编辑:我们假设一个非常简单的 audio.wav 文件。例如,猫的声音然后沉默,人的声音然后沉默,狗的声音然后沉默等。没有声音的混合。

0 投票
3 回答
1080 浏览

java - 为什么我的声音滞后?

我正在开发一个用于处理声音数据的应用程序系统。第一个应用程序只是从麦克风插孔读取数据并将数据发送到下一个应用程序。主循环重复执行此代码:

当我启动系统时,它总是落后几秒钟。如果我暂停系统(GUI应用程序告诉输入应用程序后面的应用程序停止从输入应用程序接收数据,因此输入应用程序在暂停时应该在第5行阻塞),等待,然后再次播放,系统会额外滞后多长时间我刚刚停了下来。例如,如果它以 10 秒的延迟开始,然后暂停 5 秒,然后再次播放,则会延迟 15 秒。

当我将程序作为可运行的 jar 文件运行时,就会发生这种情况。当我从 Eclipse 运行它时,它不会发生。

我已经在两台运行 Ubuntu Linux 10.04 LTS 的计算机上对此进行了测试。它发生在一个,而不是另一个。虽然另一方面,当我尝试从 Eclipse 运行它时,我确实遇到了一个完全不同的问题。不知道该怎么做。如果您想要一些有关计算机的规格,我很乐意将它们提供给您。告诉我你想要什么规格以及如何获得它们。

谁能告诉我可能导致滞后的原因是什么?谢谢。

- 编辑 -

根据 Andrew 的建议,我创建了我认为是SSCCE的东西:

此代码生成一个窗口,其中包含四个按钮:播放、暂停、连接和断开连接。如果按播放,就好像程序处于“播放”模式。如果单击连接,就好像声音输入应用程序已连接到下一个模块。
要进行测试,请执行以下操作:
将声音设备连接到您的麦克风插孔(但不要播放任何内容)。
从此代码创建可运行的 jar 文件。
从终端运行文件。
点击“播放”。
点击“连接”。

此时,您应该会在终端上看到一堆较小的数字。

在您的声音设备上,开始播放声音。

您应该立即开始在终端中看到更大的数字。

停止在声音设备上播放声音(应在终端中返回较小的数字)。
点击“暂停”。
等待 5 秒钟。
点击“播放”。

开始使用音频设备播放声音。

这就是 bug 出现的地方。如果我在 Eclipse 中运行此代码,我会立即再次获得更大的数字。如果我只是运行 jar 文件,会有 5 秒的延迟,然后我会得到更大的数字。

有什么新想法吗?

0 投票
3 回答
2645 浏览

java - FreeTTS 没有音频 linux ubuntu - 没有错误

我正在使用 Java 6 运行 Ubuntu 10.10,无法让 FreeTTS 输出任何音频。我现在已经在 3 台不同的计算机上尝试过,甚至让我的一个朋友在他的 Ubuntu PC 上尝试过,他也遇到了同样的问题。绝对没有显示错误,在获得 MBROLA 后,我什至不再收到关于未检测到 MBROLA 声音的警告。等等等等等等..

使用同一台计算机,我运行了一个虚拟机并启动了 Windows XP,当我运行 HelloWorld.jar 和 TTSHelloWorld.jar 时,我实际上能够获得音频,但是当我尝试输入自己的文本时 freetts.jar 仍然无声。

我使用的命令。

java -jar lib/freetts.jar -text 你好

当我按 Enter 键时,它会启动并用于给我丢失的 MBROLA 警告消息,但现在它只是坐在那里,直到我 CTRL-C 停止它。

我不明白我做错了什么以及为什么没有其他人遇到这个问题,当我在每台计算机上体验它时,它在 Windows 上有点工作。谁能帮我?

谢谢,

约翰