在阅读了 libflite 库之后,man ffmpeg-filters
我已经足够熟悉它了,可以用ffplay
不同的声音说话,就像这样:
ffplay -f lavfi flite=text='Love':voice=kal
ffplay -f lavfi flite=text='Love':voice=slt
如何列出 libflite 库中所有可用的语音?我试过了,
ffmpeg -f lavfi flite=list_voices=1
但
Requested output format 'lavfi' is not a suitable output format flite=list_voices=1: Invalid argument
答案1
根据 Armadeus 项目 - Flite, 这些都是 :
$flite -lv
Voices available: kal awb_time kal16 awb rms slt
您也可以在源文件中看到此列表 asrc_flite.c 第 91 行 :
static struct voice_entry voice_entries[] = {
MAKE_VOICE_STRUCTURE(awb),
MAKE_VOICE_STRUCTURE(kal),
MAKE_VOICE_STRUCTURE(kal16),
MAKE_VOICE_STRUCTURE(rms),
MAKE_VOICE_STRUCTURE(slt),
};
有关详细信息,请参阅 FFMPEG-过滤器(1)。
答案2
以下是如何正确要求过滤器flite
列出来自 FFMPEG 的声音:
ffmpeg -f lavfi -i "flite=list_voices=true"
-i
您的尝试只是在过滤器前面缺少一个,并将其替换1
为true
。像这样的过滤器flite
,不接受音频/视频作为输入,在使用时可以将其本身用作输入lavfi
。另一个例子是mandelbrot
过滤器;虽然flite
输出音频,但mandelbrot
输出视频。
flite
截至 2023/06/08 FFMPEG gitmaster可用的语音选项:
awb
kal
kal16
rms
slt