MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    为什么会报错?

    开发交流
    2
    7
    563
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zhou2008 摸鱼 最后由 编辑

      1.png
      2.png

      1 条回复 最后回复 回复 引用 0
      • RainChan
        RainChan 摸鱼 最后由 编辑

        请手动下载action里面的jar手动导入,目前仓库的依赖有一些问题

        1 条回复 最后回复 回复 引用 0
        • Z
          zhou2008 摸鱼 最后由 编辑

          3.png
          是这样吗?

          1 条回复 最后回复 回复 引用 0
          • Z
            zhou2008 摸鱼 最后由 编辑

            不行,还是一样的报错

            1 条回复 最后回复 回复 引用 0
            • Z
              zhou2008 摸鱼 最后由 编辑

              解决了

              1 条回复 最后回复 回复 引用 0
              • Z
                zhou2008 摸鱼 最后由 编辑

                但是又有了新的问题

                1 条回复 最后回复 回复 引用 0
                • Z
                  zhou2008 摸鱼 最后由 编辑

                  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无声音,但语言转文本可用

                  1 条回复 最后回复 回复 引用 0
                  • 1 / 1
                  • First post
                    Last post
                  Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact