Tag: audio

谁能告诉我为什么我的音量控制不起作用?

任何人都可以告诉我为什么我的音量控制不起作用……? import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.sound.sampled.*; import javax.swing.event.*; /**/ public class kkk extends JComponent { static File f1; int prog; static JFrame jf; int al; JLabel time; Timer tr; Button b; int pos=0; Clip c; AudioInputStream a; JSlider s; public static void main(String args[]) { f1=new File(“mm.wav”); jf=new JFrame(); jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); […]

使用Java从URL获取声音

我正在学习英语,我想开发一个软件来帮助我发音。 有一个名为HowJSay的网站,如果你进入这里: http : //www.howjsay.com/index.php ?word = car immediatly你会听到汽车这个词的发音。 我想开发一个JAVA软件,可以播放这个声音,而无需进入网站=] 我试过这个,但不起作用= / public static void main(String[] args) throws Exception { URL url = new URL(“http://www.howjsay.com/index.php?word=car”); url.openConnection(); AudioStream as = new AudioStream(url.openStream()); AudioPlayer.player.start(as); AudioPlayer.player.stop(as); } 有任何想法吗? 请。

AudioInputStream.read方法究竟返回什么?

我发现了一些问题,我实际上是用AudioInputStream read的。 下面的程序只打印我得到的字节数组,但我实际上甚至不知道,如果字节实际上是样本,那么字节数组就是音频波形 。 File fileIn; AudioInputStream audio_in; byte[] audioBytes; int numBytesRead; int numFramesRead; int numBytes; int totalFramesRead; int bytesPerFrame; try { audio_in = AudioSystem.getAudioInputStream(fileIn); bytesPerFrame = audio_in.getFormat().getFrameSize(); if (bytesPerFrame == AudioSystem.NOT_SPECIFIED) { bytesPerFrame = 1; } numBytes = 1024 * bytesPerFrame; audioBytes = new byte[numBytes]; try { numBytesRead = 0; numFramesRead = 0; } […]

如何在Java媒体框架中学习.wav持续时间?

我想使用java媒体框架将.mov文件与.wav文件合并,因此我需要知道它们的持续时间。 我怎样才能做到这一点? 任何想法,将不胜感激..

将音频样本的字节数组更改为频率

首先,我有一个项目来改变WAVE文件的频率,我需要在Java中这样做。 我在java中使用AudioSystem来获取音频数据的字节(不包括文件头)。 现在我得到一个数据字节数组,我想将它从时域更改为频域,在操作频率后,我想将其更改回时域。 这是代码: public byte[] getWAVByte(){ ByteArrayOutputStream out = new ByteArrayOutputStream(); try{ File f = new File(“audio.wav”); AudioInputStream in = AudioSystem.getAudioInputStream(f); int read; byte[] buff = new byte[(int)f.length()]; while ((read = in.read(buff)) > 0) { out.write(buff, 0, read); } out.flush(); byte[] audioBytes = out.toByteArray(); return audioBytes; }catch(Exception e){ e.printStackTrace(); } } 现在我在audioBytes中有一个字节数组,我想在频域中将其更改为另一个字节数组。 我已经读过你可以用傅立叶变换做到这一点,但是我的老师说它真的很复杂而且不在我的项目范围内。 那么有没有其他方法可以做到这一点? […]

使用Java将音频从44.1kHz下采样到16kHz

我有一个应用程序,它记录来自用户麦克风的语音样本,并将其上传到服务器,然后服务器用它做一些事情。 看来我必须使用以下参数进行记录以避免IllegalArgumentException : Encoding encoding = AudioFormat.Encoding.PCM_SIGNED; float sampleRate = 44100.0F; int sampleSizeInBits = 16; int channels = 2; int frameSize = 4; float frameRate = 44100.0F; boolean bigEndian = false; 但是我需要将它记录在16khz,而不是44.1,(sampleRate和framerate都是,我假设)并且它必须是单声道(1声道)。 PCM签名也是强制性的,所以这很好。 (服务器非常挑剔,我无法对其进行任何更改。)如何使用Java进行转换? 我通过HttpClient将音频文件作为Filebody提交给servlet,将其保存在服务器上,然后进行处理。

转换CMU Sphinx 4输入的音频文件

我有一大堆文件,我想在使用CMU Sphinx 4时获得认可.Sphinx需要以下格式: 16千赫兹 16位 单 小尾数 我的文件类似于44100 khz,32位立体声mp3文件。 我尝试使用Tritonus,然后使用更新版本JavaZoom,使用bakuzen中的代码进行转换。 但是, AudioSystem.getAudioInputStream(File)抛出UnsupportedAudioFileException ,我无法弄清楚原因,所以我继续前进。 现在我正在尝试ffmpeg。 命令ffmpeg -i input.mp3 -ac 1 -ab 16 -ar 16000 output.wav似乎应该做的伎俩(小端除外),但是当我用Audacity检查输出时,它仍然将其标记为“32 -bit float“。 我在这个网站上找到的命令也使用了-acodec pcm_s16le ,它的名字似乎输出了16位小端; 但是,Audacity仍然告诉我输出是32 bit float 。 谁能告诉我如何将音频文件转换为CMU Sphinx 4所需的格式?

理解AudioFormat,AudioInputStream和start方法的构造函数

我曾尝试编写播放声音文件的程序但到目前为止都没有成功。 我无法理解代码的某些部分: InputStream is = new FileInputStream(“sound file”); AudioFormat af = new AudioFormat(float sampleRate, int sampleSizeInBits, int channels, boolean signed, boolean bigEndian); // I don’t understand it’s constructor long length ; // length in sample frames // how cani i know the length of frames ? AudioInputStream ais = new AudioInputStream( is , af , […]

如何使用Xuggler获取用于编码的音频

我正在编写一个记录屏幕和音频的应用程序。 虽然屏幕录制效果很好,但我很难使用JDK库获取原始音频。 这是代码: try { // Now, we’re going to loop long startTime = System.nanoTime(); System.out.println(“Encoding Image…..”); while (!Thread.currentThread().isInterrupted()) { // take the screen shot BufferedImage screen = robot.createScreenCapture(screenBounds); // convert to the right image type BufferedImage bgrScreen = convertToType(screen, BufferedImage.TYPE_3BYTE_BGR); // encode the image writer.encodeVideo(0, bgrScreen, System.nanoTime() – startTime, TimeUnit.NANOSECONDS); /* Need to get […]

JavaFX特定的音频输出

我对JavaFX和Java Sound API有一点问题。 我想同时使用电脑的2个输出(USB-Headset和普通盒子)。 使用java声音api获取所有输出没有问题,但java声音api不支持MP3文件。 是否可以在JavaFX中配置输出? 这个问题有另一种解决方案吗?