当前位置:   article > 正文

阿里云语音合成TTS nodejs sdk接入示例

阿里云语音合成TTS nodejs sdk接入示例
npm i @alicloud/pop-core -S

实例化客户端

  1. // 官方文档:SDK方式获取Token_智能语音交互(ISI)-阿里云帮助中心
  2. const RPCClient = require('@alicloud/pop-core').RPCClient
  3. const ttsClient = new RPCClient({
  4. accessKeyId: 'xxx', // 阿里云申请
  5. accessKeySecret: 'xxx', // 阿里云申请
  6. endpoint: 'http://nls-meta.cn-shanghai.aliyuncs.com',
  7. apiVersion: '2019-02-28'
  8. })

Copy

接口

  1. router.get('/get/tts/url', async (req, res) => {
  2. // 获取token
  3. // 官方文档:SDK方式获取Token_智能语音交互(ISI)-阿里云帮助中心
  4. let token;
  5. if(req.cookies.tts_token) {
  6. token = req.cookies.tts_token
  7. } else {
  8. const result = await ttsClient.request('CreateToken')
  9. if(result.ErrCode) {
  10. console.error(result)
  11. } else {
  12. token = result.Token.Id
  13. res.cookie('tts_token', token, { expires: new Date(result.Token.ExpireTime * 1000) })
  14. }
  15. }
  16. // RESTful API
  17. // 官方文档:语音合成RESTfulAPI_智能语音交互(ISI)-阿里云帮助中心
  18. const url = `https://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/tts?appkey=xxx&token=${token}&text=${req.query.text}&format=wav&sample_rate=16000&voice=aida`
  19. // 转换成音频输出
  20. https.get(url, (response) => {
  21. res.setHeader('Content-Type', 'audio/mpeg')
  22. response.pipe(res)
  23. })
  24. })

Copy

前端调用

  1. const ttsAudio = new Audio()
  2. ttsAudio.src = `http://localhost/get/tts/url?text=${encodeURI('你好,世界')}`
  3. ttsAudio.play()
  4. ttsAudio.onended = function () {
  5. // ...
  6. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/383004
推荐阅读
相关标签
  

闽ICP备14008679号