Add ffmpeg tts source
This commit is contained in:
@@ -195,6 +195,8 @@ func parseArgs(s string) *ffmpeg.Args {
|
|||||||
args.Input = device.GetInput(s[i+1:])
|
args.Input = device.GetInput(s[i+1:])
|
||||||
case "virtual":
|
case "virtual":
|
||||||
args.Input = virtual.GetInput(s[i+1:])
|
args.Input = virtual.GetInput(s[i+1:])
|
||||||
|
case "tts":
|
||||||
|
args.Input = virtual.GetInputTTS(s[i+1:])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
args.Input = inputTemplate("file", s, query)
|
args.Input = inputTemplate("file", s, query)
|
||||||
|
|||||||
@@ -60,3 +60,20 @@ func GetInput(src string) string {
|
|||||||
|
|
||||||
return input
|
return input
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetInputTTS(src string) string {
|
||||||
|
query, err := url.ParseQuery(src)
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
input := `-re -f lavfi -i "flite=text='` + query.Get("text") + `'`
|
||||||
|
|
||||||
|
// ffmpeg -f lavfi -i flite=list_voices=1
|
||||||
|
// awb, kal, kal16, rms, slt
|
||||||
|
if voice := query.Get("voice"); voice != "" {
|
||||||
|
input += ":voice" + voice
|
||||||
|
}
|
||||||
|
|
||||||
|
return input + `"`
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user