gpt4 book ai didi

c++ - 如何使用 soxlib for iOS 去除开始和结束静音

转载 作者:可可西里 更新时间:2023-11-01 04:52:37 25 4
gpt4 key购买 nike

任务是从录音的开始和结束按阈值消除静音。我将这个 sox 端口用于 iOS。 https://github.com/shieldlock/SoX-iPhone-Lib/

我发现命令行 sox 工具通过以下命令完成我的任务:

sox in.wav out.wav silence 1 0.1 1% reverse silence 1 0.1 1% reverse

(取自此处:http://digitalcardboard.com/blog/2009/08/25/the-sox-of-silence/)

但我不能像这样将它翻译成 iOS lib 格式:

sox_create_effect(sox_find_effect("silence"));
args[0] = "2000", assert(sox_effect_options(e, 1, args) == SOX_SUCCESS);
assert(sox_add_effect(chain, e, &in->signal, &in->signal) == SOX_SUCCESS);

执行此任务需要提供哪些参数?

最佳答案

因为 sox in.wav out.wav silence 1 0.1 1% reverse silence 1 0.1 1% reverse 是两个不同命令行的串联:

sox in.wav temp.wav silence 1 0.1 1% reverse
sox temp.wav out.wav silence 1 0.1 1% reverse

在你的链式中创造两个沉默效果。一旦效果修剪文件的开头并将反向拷贝通过管道传输到临时目标,下一个从临时文件的开头修剪并将其反向返回到完成的目标。

但是要传递什么参数 (args)?免责声明:我经验不足,无法对此进行测试,但我相信应该是这些字符串:

args[1] = "1";
args[2] = "0.1";
args[3] = "1%";
args[4] = "reverse";

e = sox_create_effect(sox_find_effect("silence"));
args[0] = "2000", assert(sox_effect_options(e, 1, args) == SOX_SUCCESS);
assert(sox_add_effect(chain, e, &inFile->signal, &tempFile->signal) == SOX_SUCCESS);
free(e);

e = sox_create_effect(sox_find_effect("silence"));
args[0] = "2000", assert(sox_effect_options(e, 1, args) == SOX_SUCCESS);
assert(sox_add_effect(chain, e, &tempFile->signal, &outFile->signal) == SOX_SUCCESS);
free(e);

sox_flow_effects(chain, NULL, NULL);

关于c++ - 如何使用 soxlib for iOS 去除开始和结束静音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19273131/

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