注释里是这样写的,但是实际使用却不行
有dalao知道该怎么办吗
Z
zhou2008 发布的帖子
-
如何以控制台身份执行命令并获取返回
在mirai-console插件开发中
如何以控制台身份执行命令并获取返回?
CommandExecuteResult这个又该如何使用呢
以及插件怎么获取控制台的日志? -
RE: 为什么会报错?
suspend fun tts(text: String, group: Group) { val ffmpeg = File("ffmpeg.exe") val silkEncoder = File("silk_v3_encoder.exe") val ttsURL = "https://fanyi.baidu.com/gettts?lan=zh&spd=5&text=${URLEncoder.encode(text, Charsets.UTF_8)}" val stream = URL(ttsURL).openStream() if (ffmpeg.exists() && silkEncoder.exists()) { val mp3 = File("mirai_${System.currentTimeMillis()}.mp3") val pcm = File("mirai_${System.currentTimeMillis()}.pcm") val silk = File("mirai_${System.currentTimeMillis()}.silk") mp3.writeBytes(stream.readAllBytes()) try { exeCmd("${ffmpeg.absolutePath} -i ${mp3.absolutePath} -f s16le -ar 24000 -ac 1 -acodec pcm_s16le -y ${pcm.absolutePath}") exeCmd("${silkEncoder.absolutePath} ${pcm.absolutePath} ${silk.absolutePath} -Fs_API 24000 -tencent -quiet") } catch (e: IOException) { group.sendMessage(e.toString()) } val er = silk.toExternalResource() group.sendMessage(er.uploadAsVoice(group)) mp3.delete() pcm.delete() stream.close() er.close() silk.delete() } else { group.sendMessage("ffmpeg或silk编码器丢失") }
安卓端收听正常,iOS/PC无声音,但语言转文本可用