...
|
...
|
@@ -5,8 +5,6 @@ import ( |
|
|
"context"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
|
|
|
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
|
|
|
nls "github.com/aliyun/alibabacloud-nls-go-sdk"
|
|
|
"github.com/google/uuid"
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
...
|
...
|
@@ -35,7 +33,7 @@ func NewCommonTextToSpeechLogic(ctx context.Context, svcCtx *svc.ServiceContext) |
|
|
}
|
|
|
|
|
|
func (l *CommonTextToSpeechLogic) CommonTextToSpeech(req *types.TextToSpeechRequest) (resp *types.TextToSpeechResponse, err error) {
|
|
|
token, err := l.getToken1()
|
|
|
token, err := l.getToken()
|
|
|
if err != nil {
|
|
|
return nil, xerr.NewErrMsgErr("授权失败", err)
|
|
|
}
|
...
|
...
|
@@ -52,28 +50,43 @@ func (l *CommonTextToSpeechLogic) CommonTextToSpeech(req *types.TextToSpeechRequ |
|
|
return
|
|
|
}
|
|
|
|
|
|
func (l *CommonTextToSpeechLogic) getToken() (string, error) {
|
|
|
client, err := sdk.NewClientWithAccessKey(l.svcCtx.Config.TTS.ReginID, l.svcCtx.Config.TTS.AccessKeyID, l.svcCtx.Config.TTS.AccessKeySecret)
|
|
|
if err != nil {
|
|
|
return "", xerr.NewErrMsgErr("授权失败", err)
|
|
|
type TokenResult struct {
|
|
|
ErrMsg string
|
|
|
Token struct {
|
|
|
UserId string
|
|
|
Id string
|
|
|
ExpireTime int64
|
|
|
}
|
|
|
request := requests.NewCommonRequest()
|
|
|
request.Method = "POST"
|
|
|
request.Domain = l.svcCtx.Config.TTS.Domain //"nlsmeta.ap-southeast-1.aliyuncs.com"
|
|
|
request.ApiName = "CreateToken"
|
|
|
request.Version = "2019-02-28"
|
|
|
response, err := client.ProcessCommonRequest(request)
|
|
|
}
|
|
|
|
|
|
if err != nil {
|
|
|
return "", xerr.NewErrMsgErr("授权失败", err)
|
|
|
}
|
|
|
token := response.GetHttpContentString()
|
|
|
return token, nil
|
|
|
func (l *CommonTextToSpeechLogic) getToken() (string, error) {
|
|
|
//client, err := sdk.NewClientWithAccessKey(l.svcCtx.Config.TTS.ReginID, l.svcCtx.Config.TTS.AccessKeyID, l.svcCtx.Config.TTS.AccessKeySecret)
|
|
|
//if err != nil {
|
|
|
// return "", xerr.NewErrMsgErr("授权失败", err)
|
|
|
//}
|
|
|
//request := requests.NewCommonRequest()
|
|
|
//request.Method = "POST"
|
|
|
//request.Domain = l.svcCtx.Config.TTS.Domain //"nlsmeta.ap-southeast-1.aliyuncs.com"
|
|
|
//request.ApiName = "CreateToken"
|
|
|
//request.Version = "2019-07-17" //"2019-02-28"
|
|
|
//response, err := client.ProcessCommonRequest(request)
|
|
|
//
|
|
|
//if err != nil {
|
|
|
// return "", xerr.NewErrMsgErr("授权失败", err)
|
|
|
//}
|
|
|
//logx.Debug(response.GetHttpContentString())
|
|
|
//var tr TokenResult
|
|
|
//err = json.Unmarshal([]byte(response.GetHttpContentString()), &tr)
|
|
|
//if err != nil {
|
|
|
// return "", xerr.NewErrMsgErr("授权解析失败", err)
|
|
|
//}
|
|
|
//return tr.Token.Id, nil
|
|
|
return "d5868e2b5d644136add22c8a0b020435", nil
|
|
|
}
|
|
|
|
|
|
func (l *CommonTextToSpeechLogic) getToken1() (string, error) {
|
|
|
tts := l.svcCtx.Config.TTS
|
|
|
client, err := nls.GetToken(tts.ReginID, tts.Domain, tts.AccessKeyID, tts.AccessKeySecret, "2019-02-28")
|
|
|
client, err := nls.GetToken(tts.ReginID, tts.Domain, tts.AccessKeyID, tts.AccessKeySecret, "2019-07-17")
|
|
|
if err != nil {
|
|
|
return "", xerr.NewErrMsgErr("授权失败", err)
|
|
|
}
|
...
|
...
|
@@ -91,7 +104,7 @@ func (l *CommonTextToSpeechLogic) processPOSTRequest(token string, text string, |
|
|
* 5.设置可选请求参数:voice、volume、speech_rate、pitch_rate
|
|
|
*/
|
|
|
ttsConfig := l.svcCtx.Config.TTS
|
|
|
var url string = fmt.Sprintf("https://%s/stream/v1/tts", "nls-gateway-ap-southeast-1.aliyuncs.com")
|
|
|
var url string = fmt.Sprintf("https://%s/stream/v1/tts", "nls-gateway-cn-shanghai.aliyuncs.com") //"nls-gateway-ap-southeast-1.aliyuncs.com")
|
|
|
bodyContent := make(map[string]interface{})
|
|
|
bodyContent["appkey"] = ttsConfig.AppKey
|
|
|
bodyContent["text"] = text
|
...
|
...
|
@@ -139,3 +152,5 @@ func (l *CommonTextToSpeechLogic) processPOSTRequest(token string, text string, |
|
|
}
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
// http://127.0.0.1:8081/v1/file/ff9d4ab6-f095-11ee-b153-50ebf677cbf1.wav |
...
|
...
|
|