语音合成 tts

2022年8月14日 0 条评论 365 次阅读 0 人点赞

最近听有声读物,下载下来后发现每一集开头没有说是哪一个,导致分不清听到哪了,所以打算给每一集开头都加上说明,根据文件名标题合成语音,然后拼接到音频文件开头的方法。

任选一个可在线合成语音的站,F12之后,分别合成 '第 1 2 3 4 5 6 7 8 9 10 集' 的语音文件,然后将之保存下来,懒得搞的可以下载下方的内容(听起来比较智障,不过功能是有了)

>>点击查看 安装ffmpeg

最后可参考下列命令格式为每一个语音加上前缀集数,以下命令处理的原音频文件名为 第{1..50}集.mp3 ,如果编译加入了 libmp3lame ,可将下面 -f mp2 改为 -f mp3

mkdir output
for val in {1..10};do
    ffmpeg -i ./tts/第.mp3 -i ./tts/${val}.mp3 -i ./tts/集.mp3 -i ./"第${val}集.mp3" \
    -filter_complex '[0:0] [1:0] [2:0] [3:0] concat=n=4:v=0:a=1 [a]' \
    -f mp2 -map [a] ./output/"第${val}集.mp3"
done
for val in {11..49};do
    left="${val:0:1}";right="${val:1:1}"
    if [ "$right" != "0" ];then
        ffmpeg -i ./tts/第.mp3 -i ./tts/${left}.mp3 -i ./tts/10.mp3 -i ./tts/${right}.mp3 -i ./tts/集.mp3 -i ./"第${val}集.mp3" \
        -filter_complex '[0:0] [1:0] [2:0] [3:0] [4:0] [5:0] concat=n=6:v=0:a=1 [a]' \
        -f mp2 -map [a] ./output/"第${val}集.mp3"
    else
        ffmpeg -i ./tts/第.mp3 -i ./tts/${left}.mp3 -i ./tts/10.mp3 -i ./tts/集.mp3 -i ./"第${val}集.mp3" \
        -filter_complex '[0:0] [1:0] [2:0] [3:0] [4:0] concat=n=5:v=0:a=1 [a]' \
        -f mp2 -map [a] ./output/"第${val}集.mp3"
    fi
done

Sevenfal

这个人太懒什么东西都没留下

文章评论(0)