java - WAV 到 Speex 的转换需要很多时间

标签 java android jspeex

我正在使用 JSpeex API 将 .wav 文件转换为 .spx 文件。在桌面上测试时一切都很完美;只用了 2 秒。

Android 开发人员使用相同的代码,但在他们的模拟器和手机上编码相同的文件大约需要 3 分钟。有什么办法可以减少编码的时间吗?用于转换的代码如下:

new JSpeexEnc().encode(new File("source.wav"), new File("dest.spx"));

最佳答案

压缩需要时间。压缩越好,花费的时间就越长,而 Speex 是非常好的压缩。

2 秒的桌面计算机时间绝对是年龄。

JSpeex 是一个java 实现。使用 native 实现,最好使用平台编解码器。

在手机上,最好使用 AMR 压缩语音 - 不一定是最好的质量/压缩,但很可能是硬件加速,因为它是 GSM 使用的格式。您通常可以直接从麦克风获得 AMR。

首先如何将大型 WAV 文件传输到 Android 设备上?如果它实际上是麦克风的输出,请考虑如上所述使用 AMR。

如果您需要 Speex 并且您有一个 wav 文件,请考虑将其发送到服务器进行压缩。

关于java - WAV 到 Speex 的转换需要很多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1437070/

相关文章:

java - 无法使用java将内容保存在文本文件中

java - 对大型应用程序进行分析很困难

android - 设置可绘制文件夹以用于不同的分辨率

ogg - 在 iOS 上使用 Ogg 打包 Speex

java - 我们可以从java播放speex文件吗?

java - Wildfly 8.0.0.Final + EntityManager + PostgreSQL - 事务空闲

android - 将 Repo 与 Msysgit 结合使用

java - FragmentTabHost 添加带有图像和 TextView 的选项卡

java - 播放解码的 Speex 数据时,我听到的都是静态的

java - 有人可以解释一下这个正则表达式的行为吗?