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

复制代码
npm i @alicloud/pop-core -S

实例化客户端

复制代码
// 官方文档:https://help.aliyun.com/document_detail/72153.html?spm=a2c4g.94737.0.0.2457323fp1TvWy#554cde703a4xl
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
    // 官方文档:https://help.aliyun.com/document_detail/72153.html?spm=a2c4g.94737.0.0.2457323fp1TvWy#554cde703a4xl
    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
    // 官方文档:https://help.aliyun.com/document_detail/94737.html?spm=a2c4g.450255.0.0.3d044919tDgkvd
    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 () {
  // ...
}
相关推荐
梦想画家4 分钟前
Apache AGE 实战进阶:从图查询到知识图谱+LLM知识问答全流程
人工智能·知识图谱·apache age
youcans_17 分钟前
【DeepSeek论文精读】14. mHC:流形约束超连接
论文阅读·人工智能·残差网络·deepseek·超连接
wenzhangli722 分钟前
实战|Ooder 钩子机制全解析:AI 协同开发与权限框架集成实战
人工智能
Coder_Boy_24 分钟前
基于SpringAI的智能AIOps项目: 业务流程与规则规范(企业级)
人工智能·spring·spring cloud
小王毕业啦1 小时前
2011-2022年 国内光伏电站遥感矢量数据
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
Deepoch1 小时前
智能赋能新范式:Deepoc开发板重塑仓储物流产业生态
人工智能·具身模型·deepoc·物流机器人
the4thone2 小时前
AI基础 笔记
人工智能·笔记
盼哥PyAI实验室2 小时前
我用 Coze + Python,从 0 搭了一个“能真正用”的 AI 律师函系统
开发语言·人工智能·python
阿珊和她的猫2 小时前
Webpack常用配置项详解
前端·webpack·node.js
jimmyleeee2 小时前
人工智能基础知识笔记三十一:Langfuse的几种tracing的方法
人工智能·笔记