From 1ecb1f62dc1d26720298186720b7970b52ee1d5e Mon Sep 17 00:00:00 2001 From: wdvxdr Date: Thu, 22 Apr 2021 21:30:51 +0800 Subject: [PATCH] fix(codec): silk sdk conditional compile --- coolq/cqcode.go | 12 ++---------- global/codec/codec.go | 13 +++++++++++++ global/codec/codec_unsupportedarch.go | 5 +++++ global/codec/codec_unsupportedos.go | 5 +++++ global/codec/codec_windows_arm.go | 5 +++++ 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/coolq/cqcode.go b/coolq/cqcode.go index c778ba3..f41a08a 100644 --- a/coolq/cqcode.go +++ b/coolq/cqcode.go @@ -26,9 +26,9 @@ import ( "github.com/Mrs4s/MiraiGo/utils" log "github.com/sirupsen/logrus" "github.com/tidwall/gjson" - "github.com/wdvxdr1123/go-silk" "github.com/Mrs4s/go-cqhttp/global" + "github.com/Mrs4s/go-cqhttp/global/codec" ) /* @@ -786,15 +786,7 @@ func (bot *CQBot) ToElement(t string, d map[string]string, isGroup bool) (m inte if err != nil { return nil, err } - pcm, err := silk.DecodeSilkBuffToPcm(data, 24000) - if err != nil { - return nil, err - } - data, err = silk.EncodePcmBuffToSilk(pcm, 24000, 24000, true) - if err != nil { - return nil, err - } - return &message.VoiceElement{Data: data}, nil + return &message.VoiceElement{Data: codec.RecodeTo24K(data)}, nil case "record": f := d["file"] data, err := global.FindFile(f, d["cache"], global.VoicePath) diff --git a/global/codec/codec.go b/global/codec/codec.go index 646e278..865ab7a 100644 --- a/global/codec/codec.go +++ b/global/codec/codec.go @@ -51,3 +51,16 @@ func EncodeToSilk(record []byte, tempName string, useCache bool) (silkWav []byte } return } + +// RecodeTo24K 将silk重新编码为 24000 bit rate +func RecodeTo24K(data []byte) []byte { + pcm, err := silk.DecodeSilkBuffToPcm(data, 24000) + if err != nil { + panic(err) + } + data, err = silk.EncodePcmBuffToSilk(pcm, 24000, 24000, true) + if err != nil { + panic(err) + } + return data +} diff --git a/global/codec/codec_unsupportedarch.go b/global/codec/codec_unsupportedarch.go index 740852d..75be5ce 100644 --- a/global/codec/codec_unsupportedarch.go +++ b/global/codec/codec_unsupportedarch.go @@ -8,3 +8,8 @@ import "errors" func EncodeToSilk(record []byte, tempName string, useCache bool) ([]byte, error) { return nil, errors.New("not supported now") } + +// RecodeTo24K 将silk重新编码为 24000 bit rate +func RecodeTo24K(data []byte) []byte { + return data +} diff --git a/global/codec/codec_unsupportedos.go b/global/codec/codec_unsupportedos.go index 2d6cb26..8a373e7 100644 --- a/global/codec/codec_unsupportedos.go +++ b/global/codec/codec_unsupportedos.go @@ -8,3 +8,8 @@ import "errors" func EncodeToSilk(record []byte, tempName string, useCache bool) ([]byte, error) { return nil, errors.New("not supported now") } + +// RecodeTo24K 将silk重新编码为 24000 bit rate +func RecodeTo24K(data []byte) []byte { + return data +} diff --git a/global/codec/codec_windows_arm.go b/global/codec/codec_windows_arm.go index 1688bfd..5cfcfc7 100644 --- a/global/codec/codec_windows_arm.go +++ b/global/codec/codec_windows_arm.go @@ -6,3 +6,8 @@ import "errors" func EncodeToSilk(record []byte, tempName string, useCache bool) ([]byte, error) { return nil, errors.New("not supported now") } + +// RecodeTo24K 将silk重新编码为 24000 bit rate +func RecodeTo24K(data []byte) []byte { + return data +}