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

npm i @alicloud/pop-core -S

实例化客户端

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

Copy

接口

router.get('/get/tts/url', async (req, res) => {
    // 获取token
    // 官方文档:SDK方式获取Token_智能语音交互(ISI)-阿里云帮助中心
    let token;
    if(req.cookies.tts_token) {
        token = req.cookies.tts_token
    } else {
        const result = await ttsClient.request('CreateToken')
        if(result.ErrCode) {
            console.error(result)
        } else {
            token = result.Token.Id
            res.cookie('tts_token', token, { expires: new Date(result.Token.ExpireTime * 1000) })
        }
    }
    // RESTful API
    // 官方文档:语音合成RESTfulAPI_智能语音交互(ISI)-阿里云帮助中心
    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`
    // 转换成音频输出
    https.get(url, (response) => {
        res.setHeader('Content-Type', 'audio/mpeg')
        response.pipe(res)
    })
})

Copy

前端调用

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

 

相关推荐

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

    2024-04-06 13:28:01       37 阅读
  2. 阿里CDN架构接入WAF应用防火墙案例实践

    2024-04-06 13:28:01       57 阅读
  3. 对接阿里实时语音转文字的思路

    2024-04-06 13:28:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-06 13:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-06 13:28:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-06 13:28:01       82 阅读
  4. Python语言-面向对象

    2024-04-06 13:28:01       91 阅读

热门阅读

  1. Linux Summary of My Own - Big

    2024-04-06 13:28:01       30 阅读
  2. 蓝桥杯刷题-06-砍树-图遍历DFS⭐⭐⭐⭐

    2024-04-06 13:28:01       36 阅读
  3. ElasticSearch 实战:ElasticSearch文档聚合查询

    2024-04-06 13:28:01       38 阅读
  4. Tkinter 1

    Tkinter 1

    2024-04-06 13:28:01      33 阅读
  5. WebKit结构简介

    2024-04-06 13:28:01       36 阅读
  6. 关于K8S集群中maste节点r和worker节点的20道面试题

    2024-04-06 13:28:01       27 阅读
  7. git lfs使用(huggingface下载大模型文件)

    2024-04-06 13:28:01       43 阅读
  8. loopvar 改动不同版本的影响-大循环的执行时间

    2024-04-06 13:28:01       36 阅读