我使用JS GET
https://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/tts?format=mp3&voice=${voice}&volume=${volume}&speech_rate=${speech_rate}&pitch_rate=${pitch_rate}&emotion=fear&appkey=wDzNU2YzyxibbuDm&text=${text}&token=${token}`
进行语音合成,其中
text = <emotion category="happy" intensity="1.5">你好,愿你每天都拥有好心情!</emotion>
合成播放的时候,并没有应用上情感标签,而是直接把标签的英文都播放出来了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要通过 JavaScript 使用 GET 请求调用阿里云智能语音交互的 TTS(文本转语音)服务,您需要按照以下步骤进行配置和操作。以下是详细的说明和注意事项:
根据知识库中的信息,TTS 服务的完整 URL 需要包含以下参数: - 基础 URL: https://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/tts
- 必填参数: - appkey
: 您的项目 AppKey。 - token
: 服务鉴权 Token。 - text
: 要转换为语音的文本内容(需经过 UTF-8 编码和 URL 编码)。 - format
: 输出音频格式(如 mp3
、wav
等)。 - sample_rate
: 音频采样率(如 16000
)。 - 可选参数: - voice
: 发音人(如 xiaoyun
,默认值为 xiaoyun
)。 - volume
: 音量(范围 0~100
,默认值为 50
)。 - speech_rate
: 语速(范围 -500~500
,默认值为 0
)。 - pitch_rate
: 语调(范围 -500~500
,默认值为 0
)。
示例 URL:
const url = "https://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/tts" +
"?appkey=您的AppKey" +
"&token=您的Token" +
"&text=" + encodeURIComponent("今天天气好晴朗") +
"&format=mp3" +
"&sample_rate=16000";
在 GET 请求中,您可以选择性地在请求头中设置 X-NLS-Token
字段来传递鉴权 Token。如果已经在 URL 参数中设置了 token
,则无需重复设置。
示例请求头:
const headers = {
"X-NLS-Token": "您的Token" // 可选,推荐直接在 URL 中设置 token 参数
};
使用 JavaScript 的 fetch
方法发送 GET 请求,并处理返回的二进制音频数据。
代码示例:
const url = "https://nls-gateway-cn-shanghai.aliyuncs.com/stream/v1/tts" +
"?appkey=您的AppKey" +
"&token=您的Token" +
"&text=" + encodeURIComponent("今天天气好晴朗") +
"&format=mp3" +
"&sample_rate=16000";
fetch(url, {
method: "GET",
headers: {
"X-NLS-Token": "您的Token" // 可选
}
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.blob(); // 获取二进制音频数据
})
.then(blob => {
const audioUrl = URL.createObjectURL(blob); // 创建音频对象 URL
const audio = new Audio(audioUrl);
audio.play(); // 播放音频
})
.catch(error => {
console.error("请求失败:", error);
});
text
必须经过 UTF-8 编码后再进行 URL 编码(如空格编码为 %20
,加号编码为 %2B
)。token
。X-NLS-Token
。 推荐优先使用 URL 参数方式。format
参数与实际需求一致(如 mp3
或 wav
)。Content-Type
不是 audio/mpeg
,则表示请求失败,需检查错误信息。text
参数未正确编码或 format
参数不匹配。text
是否经过 UTF-8 和 URL 编码,确保 format
参数与实际需求一致。appkey
或 token
无效。appkey
和 token
正确无误,并检查 Token 是否已过期。通过以上步骤,您可以成功使用 JavaScript 调用阿里云智能语音交互的 TTS 服务并播放生成的音频文件。