MiraiForum

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

    MP3文件转成语音文件有什么好方法?

    开发交流
    音频转码 语音 插件
    5
    14
    1135
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • N
      NidouJin 最后由 编辑

      之前用的FFmpeg将mp3源文件转成amr文件,但是转换之后采样率降低了很多,从20050降到8000,音质差了很多,而且没办法提高转换的采样率。想问下大佬们还有什么方法可以提高转换的音质(转成silk也行)?

      cssxsh 1 条回复 最后回复 回复 引用 0
      • whiterasbk
        whiterasbk 最后由 编辑

        如果不在乎pc端的兼容性和语音大小,可以直接发mp3; 这种语音在手机上是可以播放的, 不过时长会显示错误; 要全平台都可用, 还是考虑转silk吧

        N 1 条回复 最后回复 回复 引用 1
        • cssxsh
          cssxsh @NidouJin 最后由 cssxsh 编辑

          @NidouJin
          提高也没啥用,码率高,文件也大,语音消息最大 1M 左右 来着

          N 1 条回复 最后回复 回复 引用 1
          • N
            NidouJin @cssxsh 最后由 编辑

            @cssxsh 确实是,mirai文档那里有写到大小限制

            1 条回复 最后回复 回复 引用 0
            • N
              NidouJin @whiterasbk 最后由 编辑

              @whiterasbk 我试过这样发mp3文件的话,只能收到空语音 resource = ExternalResource.create(new File(File));
              audio = event.getGroup().uploadAudio(resource);
              event.getGroup().sendMessage(audio);

              1 条回复 最后回复 回复 引用 0
              • whiterasbk
                whiterasbk 最后由 编辑

                @NidouJin 方便给一份 用于复现的 mp3 样例吗

                N 1 条回复 最后回复 回复 引用 0
                • N
                  NidouJin @whiterasbk 最后由 编辑

                  @whiterasbk 链接:https://pan.baidu.com/s/1YpIuzxO2XkE9aJ5W3nt-og?pwd=6lik
                  提取码:6lik
                  --来自百度网盘的分享

                  1 条回复 最后回复 回复 引用 0
                  • whiterasbk
                    whiterasbk 最后由 whiterasbk 编辑

                    @NidouJin 使用 kotlin 代码

                    // getResourceAsStream("test-voice.mp3")
                    File("test-voice.mp3").inputStream()?.toExternalResource()?.use {
                        val audio = group.uploadAudio(it)
                        group.sendMessage(audio)
                    }
                    

                    可以正常发送并播放
                    mirai 版本: 2.12.2
                    jdk: 17
                    kotlin: 1.7.0
                    系统: amd win10
                    客户端设备: nova7se
                    QQ 版本: 8.8.38.6590

                    N 1 条回复 最后回复 回复 引用 0
                    • N
                      NidouJin @whiterasbk 最后由 编辑

                      @whiterasbk 感谢大佬

                      1 条回复 最后回复 回复 引用 0
                      • Mitr-yuzr
                        Mitr-yuzr 摸鱼 最后由 编辑

                        silk4j 了解一下?
                        提供mp3文件或inputstream转silk的java接口

                        A 1 条回复 最后回复 回复 引用 0
                        • A
                          annacode747 @Mitr-yuzr 最后由 编辑

                          @Mitr-yuzr github可以搜到,只不过导入jar麻烦

                          cssxsh 1 条回复 最后回复 回复 引用 0
                          • cssxsh
                            cssxsh @annacode747 最后由 编辑

                            @annacode747
                            https://github.com/project-mirai/mirai-silk-converter

                            建议用官方的 这个插件

                            你正常发送 mp3 就行,
                            他会在中间转换成 silk 再发出去

                            A 1 条回复 最后回复 回复 引用 0
                            • A
                              annacode747 @cssxsh 最后由 编辑

                              @cssxsh 非常感谢,不过我还有一个疑问,如果是wav这种高音质的文件应该需要怎么解决呢😂

                              cssxsh 1 条回复 最后回复 回复 引用 0
                              • cssxsh
                                cssxsh @annacode747 最后由 cssxsh 编辑

                                @annacode747
                                没法解决,qq 用的 silk 格式 再怎么转也是 低质量的,这是这种格式的特性,而且还有上传大小限制,

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