对接阿里语音合成证书

This commit is contained in:
2024-11-05 14:52:11 +08:00
parent f9b9beea4b
commit ccfe0d311b
4 changed files with 60 additions and 42 deletions

View File

@@ -17,7 +17,8 @@ import (
type AliTTS struct {
config.AliyunConfig
ctx context.Context
ctx context.Context
tokenResult nls.TokenResult
}
type result struct {
@@ -49,10 +50,31 @@ func (tts *AliTTS) Sound(text string) {
}
}
func (tts *AliTTS) getToken() error {
if tts.tokenResult.ExpireTime != 0 && time.Unix(tts.tokenResult.ExpireTime, 0).After(time.Now()) {
return nil
}
tts.tokenResult = nls.TokenResult{}
resultMessage, err := nls.GetToken("cn-shanghai", "nls-meta.cn-shanghai.aliyuncs.com", tts.AccessKeyID, tts.AccessKeySecret, "2019-02-28")
if err != nil {
return err
} else if resultMessage.ErrMsg != "" {
return errorsx.ThirdPartyErr
}
tts.tokenResult = resultMessage.TokenResult
return nil
}
func (tts *AliTTS) Get(text string) (io.Reader, error) {
param := nls.DefaultSpeechSynthesisParam()
param.Volume = 100
connectConfig := nls.NewConnectionConfigWithToken(nls.DEFAULT_URL, tts.AppKey, tts.Token)
err := tts.getToken()
if err != nil {
return nil, err
}
connectConfig := nls.NewConnectionConfigWithToken(nls.DEFAULT_URL, tts.AppKey, tts.tokenResult.Id)
logger := nls.NewNlsLogger(leaf.DefaultWriter, "", log.LstdFlags|log.Ltime)
logger.SetLogSil(false)