前言
开始文章之前,先讲一个故事吧!
鸡杂是一只小小的鸡,与其他小鸡一样,它的生活很平凡。它每天早上会和其他小鸡一起在鸡舍里啄食谷物,然后在阳光明媚的天气里在草地上奔跑嬉戏。但是,有一天,鸡杂的生活发生了一个巨大的转变。
这一天,鸡杂醒来后发现自己的身体变得异常的轻盈。它感觉自己仿佛在飞翔一样,比其他小鸡跑得更快。这让它感到十分奇怪,不知道自己到底发生了什么变化。
不久之后,鸡杂学会了一项非常奇特的技能——它可以将文本转化为语音!每当它看到一段文字时,它可以轻松地将其转化为一段悦耳动听的声音,这让其他小鸡们感到十分惊讶。
鸡杂开始利用自己的技能,给其他小鸡们朗读着各种有趣的故事和诗歌,成为了小鸡们中的一位名人。然而,鸡杂很快发现,这个技能并不仅仅是给其他小鸡们带来欢乐的工具,还可以帮助其他动物和人类。
一天,一个失明的老婆婆来到了鸡舍里寻求帮助,她希望能够听到一些有趣的故事。鸡杂很快将自己的技能发挥了出来,为老婆婆朗读了很多经典的故事和寓言。老婆婆非常感激鸡杂的帮助,也为它的技能感到十分惊奇。
从那以后,鸡杂开始了一项非常特殊的工作——为那些需要帮助的人们朗读着各种各样的内容,带给他们欢乐和启示。虽然它只是一只小小的鸡,但是它用自己独特的方式,为这个世界带来了一些美好的变化。
一、鸡杂学会的是啥技能?
TTS全称Text to Speech, 是一种文本转语音的一种技术,可以将输入的语音转换成语音的形式输出。现在,TTS被广泛地运用到很多的领域中去,也有很多平台提供了TTS技术,鸡杂这次便是通过百度云来学习了TTS文本转换成语音。
二、学习技能
1.进入百度智能云,使用文本合成语音服务
鸡杂进入了百度智能云,从里面学习了tts技能,这是鸡杂变化的开端。
2.创建应用,获取密钥
鸡杂完成了这一步可以获得了API Key和Secret Key,以及AppID,知道在后面的操作一定会有用处
3.获取Access Token
鸡杂通过获取到的API Key 和 Secret Key使用了以下的代码获取到Access Token,为后面成功学会TTS打下了扎实的基础。
const request = require('request')
async function main() {
var options = {
'method': 'POST',
'url': 'https://aip.baidubce.com/oauth/2.0/token?client_id=Em0dn3Kn8rdnoEjdcoAOpLIK&client_secret=7vqnPM5o2MHF0jizZjYZpRgzIvMCEFvc&grant_type=client_credentials',
'headers': {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
}
main();
4.一个文字转语音函数
鸡杂学以致用,封装了一个函数,一遍每次能够完美的使用技能。
const http = require('http');
const querystring = require('querystring');
const fs = require('fs');
const path = require('path');
const getSpeak = (text) => {
const postData = querystring.stringify({
'tex': text,
'tok': '24.547429524ff49de1b2f9757bd9d5e68b.2592000.1680789290.282335-31051418',
'cuid': '123612963921649182',
'ctp': '1',
'lan': 'zh',
'spd': '3',
'per': '3'
});
const options = {
"method": "GET",
"hostname": "tts.baidu.com",
"path": "/text2audio?" + postData
};
const req = http.request(options, function (res) {
let chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = Buffer.concat(chunks);
var filePath = path.normalize('./mp3/yyy.mp3');
fs.writeFileSync(filePath, body);
});
});
req.end();
}
module.exports = { getSpeak }
三、使用技能
鸡杂选择使用以前就学的express,来实现了一些简单的接口,为那些需要帮助的人们朗读着各种各样的内容,带给他们欢乐和启示。虽然它只是一只小小的鸡,但是它用自己独特的方式,为这个世界带来了一些美好的变化。
const express = require("express");
const { getSpeak } = require("./utils/getSpeak");
const app = express();
const path = require('path');
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.get('/getSpeak', (req, res) => {
const { text } = req.params
if (!text) {
return res.status(400).send('Bad Request');
}
getSpeak(text);
res.send('Success!');
});
app.get('/showSpeak', function (req, res) {
const file = './mp3/yyy.mp3';
res.sendFile(path.resolve(file));
});
app.listen(7001, () => console.log(' 7001!'))
总结
不好意思让大家看了那么尬的文章,鸡杂终究是只小小的鸡/(ㄒoㄒ)/~~