有没有办法从Google TTS输出中删除padding?

我正在使用Google.Cloud.TextToSpeech.V1并使用TextToSpeechClient.SynthesizeSpeech()来生成一些基本ssml的Mp3。但是,结果总是在文件开始时有大约50ms的填充静音,在文件结束时有200ms的填充静音。

有什么方法可以防止这种填充被添加,因为我需要让这些mp3以拼接句子的形式播放,而填充会增加不必要的停顿。

只是为了说明一下,我使用的ssml的例子。

<speak>Hello</speak>

我没有添加任何休息或停顿。

解决方案:

我在GOOGLE TTS api中没有找到解决方案,但我找到了2个变通方法

1) Javascript

由于我在JS中播放声音,我只是在播放前定位播放时间,就像这样。

var au=new Audio(url);
au.preload=true;
au.currentTime=0.15;

然后附加事件处理程序来更新播放时间事件。

function stopp(e){
    if (e.target.currentTime >= e.target.duration-0.3) {
        e.target.pause();
        e.target.removeEventListener('timeupdate',stopp);
    }
}
au.addEventListener('timeupdate',stopp, false)

这样声音就会在结束前变小

2)使用SOX预处理

SOX(Sound eXchange,音频操作的瑞士军刀)可以从MP3文件中切割静音。然而,切割在最后,如果疯狂。你需要反转文件,切割开始,然后再反转。实际上,我没有找到任何实用程序,可以很容易地削减文件结束时的沉默。

你有没有发现一个更好的解决方案,现在?

给TA打赏
共{{data.count}}人
人已打赏
未分类

无法将hive表导出到mysql。

2022-9-8 19:59:39

未分类

postgresql: group by in column update - 语法错误

2022-9-8 19:59:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索