按示例测试语音合成,一直返回501错误
白胖次妖刀姬 发布于2019-05 浏览:2212 回复:5
0
收藏

 

/**
* TTS语音合成示例
*/
void TTS(aip::Speech* client) {
	std::ofstream ofile;
	std::string file_ret;
	std::string content;
	std::map options;
	options["spd"] = "9";
	content = "测试百度语音合成";
	ofile.open("./tts.mp3", std::ios::out | std::ios::binary);
	Json::Value result = client->text2audio(content, options, file_ret);
	// 如果file_ret为不为空则说明合成成功,返回mp3文件内容
	if (!file_ret.empty())
	{
		// 合成成功保存文件
		ofile << file_ret;
		std::cout << "语音合成成功,打开目录下的tts.mp3文件听听看" << std::endl;
	}
	else {
		// 合成出错,打印错误信息
		std::cout << result.toStyledString();
	}
}

收藏
点赞
0
个赞
共5条回复 最后由用户已被禁言回复于2022-04
#8liguanghui2588回复于2019-05
#4 白胖次妖刀姬回复
问题解决了,原因是我的文本格式不是UTF-8.

文本格式造成的错误

0
#6用户已被禁言回复于2019-05
该评论已删除

好的,感谢你的反馈。

0
#4白胖次妖刀姬回复于2019-05

问题解决了,原因是我的文本格式不是UTF-8.

0
#3用户已被禁言回复于2019-05

0
#2白胖次妖刀姬回复于2019-05

token值是获取得到的,但是speech.h的这个方法中,status_code返回的值是0:

 Json::Value request_tts(
                                  const std::string  url,
                                  std::map & data,
                                  std::string & file_content)
        {
            std::string response;
            Json::Value obj;
            Json::Value file_json;
            int status_code = this->client.post(url, nullptr, data, nullptr, &response);
            if (status_code != CURLcode::CURLE_OK) {
                obj[aip::CURL_ERROR_CODE] = status_code;
                return obj;
            }
            std::string error;
            std::unique_ptr reader(crbuilder.newCharReader());
            reader->parse(response.data(), response.data() + response.size(), &obj, &error);
            
            if (error.empty()) {
                // 接口返回错误信息
                obj[aip::CURL_ERROR_CODE] = 0;
            } else {
                // 接口返回语音文件
                file_content = response;
            }
            return obj;
        }
0
TOP
切换版块