通过SIP客户端发送音频

时间:2018-07-16 09:45:26

标签: java audio text-to-speech sip audio-processing

我有2个客户端,Java SIP客户端net.sourceforge.peers和另一侧的Zoiper。

我正在尝试使用net.sourceforge.peers.demo

在Java客户端上发送准备好的音频文件

net.sourceforge.peers上,我将读取传入的音频,进行转录,然后使用nlp生成一个文本,对其进行tts(nlp和tts在net.sourceforge.peers之外完成),并将其存储为文件({{1)},然后将其流回Zoiper客户端。

我已在C:\\Users\\absin\\Downloads\\output1.wav中配置了MediaMode.captureAndPlayback,因为我想捕获传入的音频,对其进行处理并发送准备好的音频。

我有以下课程要这样做:

net.sourceforge.peers.peers-demo

我正在Zoiper客户端上获得音频,但是音频缓慢且断线。

如果我像下面这样更改public class StreamSoundManager extends AbstractSoundManager { @Override public byte[] readData() { File file = new File("C:\\Users\\absin\\Downloads\\output1.wav"); FileInputStream fin = null; byte[] byteArray = null; try { // create FileInputStream object fin = new FileInputStream(file); // create string from byte array byteArray = IOUtils.toByteArray(fin); } catch (FileNotFoundException e) { System.err.println("File not found" + e); } catch (IOException ioe) { System.err.println("Exception while reading file " + ioe); } finally { // close the streams using close method try { if (fin != null) { fin.close(); } } catch (IOException ioe) { System.err.println("Error while closing stream: " + ioe); } } return byteArray; } 中的MediaMode.file并修改CustomConfig.java类中的handleAck,则我的Zoiper客户端会获得正确的音频

MediaManager

在Java客户端上的case file: if (fileReader != null) { fileReader.close(); } // String fileName = userAgent.getConfig().getMediaFile(); String fileName = "C:\\Users\\absin\\Downloads\\output1.wav"; fileReader = new FileReader(fileName, logger); startRtpSession(destAddress, destPort, codec, fileReader); try { incomingRtpReader = new IncomingRtpReader(rtpSession, null, codec, logger); } catch (IOException e) { logger.error("input/output error", e); return; } incomingRtpReader.start(); break; 类中我缺少什么?

我的用例是从Zoiper捕获传入的音频流,在Java客户端中对其进行处理,然后使用tts和nlp准备音频并将其发送到Zoiper客户端。我可以在StreamSoundManager演示的MediaMode.file中使用CustomConfig来实现吗?我经历了peers,但是找不到这个特殊的用例。

0 个答案:

没有答案