引自免费微信小程序:皆我百晓生
看起来你需要解决的是Freeswitch和soundtouch之间的兼容性问题,这可能是由于它们对音频样本格式(浮点数或整数)的不同处理导致的。按照提供的建议,你需要确保soundtouch库被配置为使用整数样本。这里是一个详细的步骤指南来帮助你重新编译soundtouch:
首先,你需要下载soundtouch源码。如果你还没有,可以通过以下步骤获取:
- 打开终端并切换到一个临时目录,例如
/tmp
:
cd /tmp
- 下载soundtouch源码包,假设当前最新版本为2.1.2:
wget https://github.com/soundtouch/soundtouch/archive/v2.1.2.tar.gz
- 解压下载的tar文件:
tar xvf v2.1.2.tar.gz
- 进入解压缩后的目录:
cd soundtouch-2.1.2
接下来,我们开始配置、编译和安装soundtouch:
- 配置soundtouch,启用整数样本支持:
./configure --enable-integer-samples
- 如果你的系统上已经安装了libsoundtouch,并且你想覆盖原来的库,你需要先卸载旧的库(如果有):
sudo apt-get remove libsoundtouch-dev libsoundtouch1
- 现在,我们可以编译和安装soundtouch:
make
sudo make install
完成上述步骤后,你应该有一个使用整数样本的soundtouch库。为了确认更改是否生效,你可以查看编译后的库文件的信息,通常可以在/usr/local/lib
或/usr/lib
中找到libsoundtouch.so
或libsoundtouch.a
,检查其链接信息是否有整数样本相关的标志。
现在回到Freeswitch,确保你使用的版本也支持与整数样本的soundtouch库配合工作。如果可能的话,升级到一个已知与整数sample soundtouch兼容的版本。
再次启动Freeswitch,加载mod_soundtouch
模块,然后尝试使用相同的测试场景。如果一切正常,你现在应该能听到正常的变声效果,而不是噪音。
注意:这些步骤可能会根据你的具体环境有所不同,特别是关于库路径和卸载旧库的部分。如果你遇到任何问题,比如找不到特定的库或命令,可能需要查阅更具体的文档或针对你的Linux发行版的指导。