Tag: 麦克风

模拟麦克风输入

我正在尝试编写一个读取wav文件的小程序,并将输出发送,就像它来自我的麦克风一样。 不幸的是,我对声音API没有多少经验。 背景:我基本上想要实现的是一个程序,当我在语音聊天(即Teamspeak,Ventrilo)时播放声音。 为了让它现在起作用,我必须将录音设备切换到“你听到了什么”,播放声音,然后切换回麦克风。 该程序应模拟麦克风的输入。 到目前为止,我只能播放声音。 我想我只需要一个不同的SourceLine? public class Player { private final int BUFFER_SIZE = 128000; private AudioInputStream audioStream; private AudioFormat audioFormat; private SourceDataLine sourceLine; public void playSound(File soundFile) { try { audioStream = AudioSystem.getAudioInputStream(soundFile); } catch (Exception e) { e.printStackTrace(); System.exit(1); } audioFormat = audioStream.getFormat(); DataLine.Info infoIn = new DataLine.Info(SourceDataLine.class, audioFormat); try { […]

如何在java中通过UDP发送音频流?

我有一个问题,我已将MediaLocator设置为麦克风输入,然后创建了播放器。 我需要从麦克风中获取声音,将其编码为较低质量的流,然后通过UDP将其作为数据报包发送。 这是代码,我在网上找到了大部分代码,并将其改编为我的应用: public class AudioSender extends Thread { private MediaLocator ml = new MediaLocator(“javasound://44100”); private DatagramSocket socket; private boolean transmitting; private Player player; TargetDataLine mic; byte[] buffer; private AudioFormat format; private DatagramSocket datagramSocket(){ try { return new DatagramSocket(); } catch (SocketException ex) { return null; } } private void startMic() { try { format […]

Java录制麦克风到字节数组和播放声音

我想用Java制作一个现场语音聊天程序,但我对Java中的录音/播放声音一无所知,所以在Google的帮助下,我想我已经能够从我的麦克风录制到一个字节数组,其中包含以下内容: AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true); TargetDataLine microphone; try{ microphone = AudioSystem.getTargetDataLine(format); DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); microphone = (TargetDataLine)AudioSystem.getLine(info); microphone.open(format); ByteArrayOutputStream out = new ByteArrayOutputStream(); int numBytesRead; byte[] data = new byte[microphone.getBufferSize()/5]; microphone.start(); int bytesRead =0; try{ while(bytesRead<100000){ //Just so I can test if recording my mic works… numBytesRead […]

Java中的麦克风级别

我正试图通过Java访问麦克风的级别。 我不需要录制任何东西,我只想知道声级的相对比例。 这可能是实时的吗? 如果这是不可能的,也许这可行:当电平超过某个值时开始录制,当电平下降到一定水平一段时间后停止录制四分之一秒的位并读取它的音量,如果它低于阈值停止录音。 提前致谢

如何在人群区录制音频的同时用java删除背景噪音?

当我使用JavaSound或第三方声音捕获工具捕获并将其记录到文件中时。 之后再读取文件进行修改,有没有办法用我的java应用程序删除“背景噪音”。 主要人说话时道路交通/空气噪音等? 谢谢

Java Sound API – 捕获麦克风

我已经阅读了Sound API for Java几天了,我无法理解它。 我是一个不错的程序员,我只是很难理解API。 我一直试图从麦克风中捕获音频并实时显示波形图。 我在捕获音频方面遇到了麻烦,他们在教程中说这样做,但我似乎无法让它工作。 任何建议和帮助将不胜感激,逐行回答将是理想的。 谢谢,麻烦您了。 import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.TargetDataLine; public class FindLine { public static void main (String[] args){ AudioFormat format = new AudioFormat(22000,16,2,true,true); TargetDataLine line; DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); // format is an AudioFormat object if (!AudioSystem.isLineSupported(info)) { // Handle the error […]