【问题标题】:What is a language for sound control什么是声音控制语言
【发布时间】:2012-02-02 01:00:59
【问题描述】:

我正在尝试制作一个大致执行以下操作的程序:

produceBeepSound(double loudness);

我可以在 Java 中做这样的事情吗?我需要它非常精确。 matlab呢?哪种语言最适合这项任务。该语言必须具有 GUI 组件。

【问题讨论】:

标签: java python matlab audio


【解决方案1】:

您可以使用Java Media Framework 来产生声音,但这不是必需的,因为您可以使用javax.sound.sampled 包并将其与Java Swing 集成。

在 python 中,看看pyaudio 库,也看看PythonInMusic,它有很多各种 A/V 模块的集合。

另外,看看Beeper

它是一个 GUI 程序,只使用 J2SE 类,可以产生声音 可配置的音调和持续时间,以及(稍作调整)在 不同的原始体积

感谢@Andrew 再次纠正我。

【讨论】:

  • 自 1.3 和 javax.sound.sampled 包的引入以来,JMF 就不再需要在 Java 中发出声音了。请与时俱进。 ;) 我的第一条评论链接到带有 GUI 的代码,仅使用 J2SE 类, 可以产生可配置的音调和持续时间的声音,并且(稍作调整)以不同的原始音量。跨度>
  • 很好的编辑,但最好将“未使用”限定为“没有必要使用采样声音 '。澄清的原因是我在过去几个月内(在 1.6 JRE 中)使用 JMF 从 JPEG 制作 MOV 文件(我不想因为使用废弃的 API 而感觉像恐龙)。
  • @AndrewThompson:再次感谢。很多东西要学..很多东西要学:)。
  • 是的。答案现在到了我刚刚+1的地步。 :)
【解决方案2】:

在 MATLAB 中,只需使用 SOUND 函数:

http://www.mathworks.com/help/techdoc/ref/sound.html

您可以指定一个向量来代表您的信号,该向量上的幅度将决定响度,所以它只是一个简单的缩放问题。

【讨论】:

  • 实际上,您甚至可以使用该函数控制采样率和位深度。
  • 每次我尝试“声音”功能时,它都会告诉我我有太多参数。它似乎没有工作......
  • 除非函数是“说谎”... :),.. 你能发布代码来显示你如何调用 SOUND 吗?
【解决方案3】:

你可以试试Csound。有java的API。

您还应该查看此 wiki 页面:http://en.wikipedia.org/wiki/Comparison_of_audio_synthesis_environments

但如果您需要一些简单的东西,您可以尝试:

java.awt.Toolkit.beep();

System.out.println((char)7);

但您无法控制音量。

可能我最喜欢的方法是 HTML 5 音频 api - https://wiki.mozilla.org/Audio_Data_API#Writing_Audio

【讨论】:

    【解决方案4】:

    在 Windows 上,实际上任何语言都可以发出声音,只是输出 ascii 字符“\007”。 Here 是一篇很好的文章,介绍了如何在 java 中进行操作。

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2012-01-29
      • 2012-07-11
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      相关资源
      最近更新 更多