Lua通过REST API模式实现百度语音合成

Song1720 次浏览0个评论2018年09月11日

从百度官网可以看到实现语音合成的方式为REST API,同时官网也提供了JAVA SDK,PHP SDK,Python SDK,C# SDK,C++ SDK,Node.js SDK,我们在这里提供一下Lua SDK

环境需求

实现代码

文档地址为:REST API文档

local http = require("socket.http")
local cjson = require("cjson")

-- API Key
local client_id = ""
-- Secret Key
local client_secret = ""

-- 获取access_token
function accessToken()
    access_token_url = table.concat({"https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=",client_id,"&client_secret=",client_secret})
    result = http.request(access_token_url)
    local data = cjson.decode(result);
    local access_token = data["access_token"]
    return access_token
end

-- urlEncode
local function urlEncode(s)
    s = string.gsub(s, "([^%w%.%- ])", function(c) return string.format("%%%02X", string.byte(c)) end)
    return string.gsub(s, " ", "+")
end

-- 语音合成
function getWav(text)
    access_token = accessToken()
    encodtext = urlEncode(text)
    ttsurl = table.concat({"https://tsn.baidu.com/text2audio?tex=",encodtext,"&lan=zh&cuid=8712ja7263129we82&ctp=1&aue=6&tok=",access_token})

    results = http.request(ttsurl)
    file = io.open("ws.wav", "a")
    io.output(file)
    io.write(results)
    io.close(file)
end

getWav("你好Ptorch")

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...