用Java实现音频处理

用Java实现音频处理,java,javasound,audio,Java,Javasound,Audio,数字图像的最小单位是像素。 数字声音的最小单位是什么? 什么可以被认为是声音的像素? 我们如何使用java来操作它?在java中,您通常使用AudioInputStream实例(从java声音API定义的类中获得)。这些是按字节读取的,用于播放。 我自己从来没有做过任何操作,但据我所知,这主要是通过JavaSound的mixer类完成的 下面的教程应该包含您要查找的所有信息: 最小的声音单位称为帧。对于8位单声道,它将是一个单字节。对于立体声16位,它将是4字节 我们如何使用Java来操作它 这

数字图像的最小单位是像素。 数字声音的最小单位是什么? 什么可以被认为是声音的像素?
我们如何使用java来操作它?

在java中,您通常使用AudioInputStream实例(从java声音API定义的类中获得)。这些是按字节读取的,用于播放。 我自己从来没有做过任何操作,但据我所知,这主要是通过JavaSound的mixer类完成的

下面的教程应该包含您要查找的所有信息:
最小的声音单位称为帧。对于8位单声道,它将是一个单字节。对于立体声16位,它将是4字节

我们如何使用Java来操作它

这取决于你想用它做什么。你需要更具体一些才能得到合理的答案

一些可能的操作包括:

  • 体积变化
  • 平底锅
  • 加快或减慢播放速度,有无
  • 音高偏移
  • 频谱分析
。。扬声器可以产生多少赫兹或样本

这在很大程度上取决于演讲者。扬声器有各种不同类型的动态范围,通常是一种没有绝对上限或下限的“钟形曲线”


这是否意味着需要44KB才能存储1秒CD质量的音乐

每帧CD音质的声音包含4个字节,如果是立体声,则为16位。将4字节乘以44100以计算每秒的字节数

单声道和立体声有什么区别

单声道有一个声道,立体声有两个声道

我想做的是操纵单个的声音单位,并创建一个定制的乐器/合成器

在代码中生成简单的正弦声音并不难。有关示例,请参见

通过播放声音的ADSR(攻击、衰减、维持、释放)包络线,可以产生许多其他效果。例如,将吉他音符的ADSR信封应用于钢琴音调,将使其听起来不可思议地像吉他,反之亦然

什么是频道?它是否像扬声器-左扬声器是一个通道,右扬声器是另一个通道

差不多。单声道听起来像垃圾(IMO),而立体声可以让不同的乐器听起来像来自不同的位置,就像乐队正坐在你面前一样

5.1声道声音稍微复杂一点,通常只是简单地“欺骗”

  • 将左声道穿过左扬声器
  • 将正确的频道穿过正确的扬声器
  • 将二者均匀混合,并通过中央扬声器播放
  • 仅对低频声音进行过滤,并通过单低音扬声器或低音扬声器进行过滤。人耳无法轻易辨别低频声音来自何处,因此这是可以接受的。低音扬声器可以放在房间的任何地方,但声音仍然一样

  • 老实说,我不知道有哪种声音格式可以存储5或6个声道的声音,我认为在运行时,它们在硬件上是分开的(对于低音扬声器)或混合在一起的(对于中央扬声器)。Java Sound在任何情况下都只能直接处理一个或两个频道

  • 数字声音的最小单位是一个样本——特定时间点的信号电平。[但见下文增编。]

    使用Java来操作它:如果你不得不问这个问题,你可能想去寻找其他人编写的库

    但是,如果你想知道一般涉及到什么:读入声音文件。如果是压缩格式(如MP3),请将其解压缩。这将为您提供非常长的样本数组/向量。您可以剪切并粘贴其中的部分以编辑录音,或将其缩放以使其更柔和或更响亮(注意“剪辑”,当您试图超过最大音量时会出现这种情况)。更复杂的操作是可能的,但这是
    数字信号处理
    中的一门完整课程,我在这里不打算尝试这么做——Web搜索该短语,特别是与
    声音
    音频
    音乐
    结合使用,应该可以找到更多信息

    您还可以通过编程方式生成示例来生成自己的音频。一个信号在不同样本之间呈正弦变化,产生纯音。其他重复形状添加了各种泛音。改变重复频率会改变音高。将几个信号加在一起(同时注意削波)会将它们混合成一个信号。等等

    请注意,MIDI不是“数字声音”——它是数字乐谱。它描述了什么样的音符应该在什么时候播放,但这取决于合成器将其转换成声音


    附录:我以前没听说过“框架”这个词(见安德鲁的回答),但我相信它。我想到样本是因为我在硬件层思考,但区别于样本意味着音频剪辑是一件好事,所以我打赌帧确实更正确/最新。

    这肯定是一个太宽泛的主题,声音是一个连续波。你可以用数学方法来处理它,但你要从时间到频谱。关于这一点,你可以选修整个大学课程。我同意。例如,我在压缩的avi文件中根本找不到任何像素。从广义上讲,音频文件的最小单位是1“”(或示例)。CD质量音频中每秒有44100赫兹。您可能想参考这些API示例了解更多信息。这是否意味着需要44KB才能存储1秒CD质量的音乐?等等,扬声器能产生多少赫兹或样本?称之为“帧”,而不是“赫兹”。赫兹就像英里/小时或公里/小时,它是一种速度。数字音频数据的最小部分是一个帧,它(我认为)是一个1/44100秒(给定)信号振幅的测量值