gpt4 book ai didi

Java 转换音频格式

转载 作者:太空宇宙 更新时间:2023-11-04 11:38:12 24 4
gpt4 key购买 nike

我想做的是通过 TargetDataLine 类从麦克风捕获音频,用套接字发送它并通过 SourceDataLine 在另一端播放。问题是我正在捕获的麦克风仅支持:

AudioFormat format = new AudioFormat(48000, 16, 1, true, true);

我正在播放的扬声器仅支持:

AudioFormat format = new AudioFormat(32000, 16, 2, true, true);

当我直接获取48khz并将其推送到32khz音频格式时,声音会变调,有什么办法将48khz单声道声音转换为32khz立体声吗?

最佳答案

如果 Java 有一些内置的音频文件格式转换,您可以从音频教程线程上的“Using Files and Format Converters”帖子中了解它。

如果必须手动完成,请查看该页面上的第一个代码示例,特别注意注释点

  // Here, do something useful with the audio data that's 
// now in the audioBytes array...

如果并行运行输入和输出线,则可以使用线性插值从 48000 行获取数据并将其发送到 32000 行。比例为3:2。

因此,对于输入中的 3 个 PCM 数据点,计算输出的 2 个 PCM 数据点。

对于输入,您可以将 in[0] 发送到 out[0] 以及 in 1 的总和/2 和 in[2]/2 到 out 1 .

复制从单声道转换为立体声的值。

关于Java 转换音频格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43057662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com