【置顶】语音合成REST API问题及答案汇总贴

0半君0 2016年1月18日提问

18个答案
  • 0 评论
    大雁的信仰 2016年1月31日回答

    各位大侠,请问REST_API语音合成支持AMR格式吗,如果支持,需要如何设置?多谢!

  • 3 评论
    游走中的我 2016年2月16日回答
     请问百度工程师, 语音合成的REST API 是不是还没完善啊?我获取mp3 都听不到声音(包括web访问和VLC)?


  • 0 评论
    IsonGT 2016年3月30日回答

    希望有一份java的例子提供参考,我写好的java后台方法测试总是提示"err_msg": "parameter error.","err_no": 501。如果正常在浏览器地址栏请求是可以正常显示的。只是在后台运行就报错

    HttpURLConnection conn = (HttpURLConnection) new URL(serverURL).openConnection();

    // 设置请求参数

    JSONObject params = new JSONObject();

    params.put("tex", URLEncoder.encode(URLEncoder.encode("广州中科诺泰技术邮箱公司", "utf-8"), "utf-8"));

    params.put("lan", URLEncoder.encode(URLEncoder.encode("zh", "utf-8"), "utf-8"));

    params.put("ctp", URLEncoder.encode(URLEncoder.encode("1", "utf-8"), "utf-8"));

    params.put("tok", URLEncoder.encode(URLEncoder.encode(token, "utf-8"), "utf-8"));

    params.put("cuid", URLEncoder.encode(URLEncoder.encode(cuid, "utf-8"), "utf-8"));

    // add request header

    conn.setRequestMethod("POST");

    conn.setRequestProperty("Content-Type", "json/html; charset=utf-8");

    conn.setDoInput(true);

    conn.setDoOutput(true);

    System.out.println("转码前:" + params.toString());

    //URLENCODE转码

    String s = params.toString();

    System.out.println("转码后:" + s);

    // 发送接受

    DataOutputStream wr = new DataOutputStream(conn.getOutputStream());

    wr.writeBytes(s);

    wr.flush();

    wr.close();


    以上是例子代码,我希望是获取二进制流的。


  • 0 评论
    石杨开 2016年4月7日回答

    REST API可不可以用男女声音离线包?怎么用?

  • 2 评论
    色木鱼 2016年4月23日回答

    语音识别的结果都是

    {"corpus_no":"6276769213884965949","err_msg":"success.","err_no":0,"result":["嗯嗯,"],"sn":"434976619881461424216"}

    这个什么原因?

    不管我说什么,他都回复这个。


  • 0 评论
    小怪兽1008c 2016年5月31日回答

    请教一下各位大神我语音合成通过URL直接写进地址栏可以合成为什么写成php程序显示该视频无法播放,文件损坏呢

  • 0 评论
    rj5113041992 2016年8月19日回答

    Demo里有一行

    BufferedReader rd = new BufferedReader(new InputStreamReader(is));没有指定字符集,离开了开发平台就会读到乱码

  • 0 评论
    你椰椰 2016年12月1日回答

    请问eclipse报这个,我是有哪个接口没实现吗,还是哪方面的问题?


  • 0 评论
    xujiayuxjy 2017年4月5日回答


    问题一:

    目的获得某个字的波形文件数据,看文档会说是成功会是二进制的,如果成功我是不是直接二进制写文件,

    而后通过audioread就可以获取我要的波形数据.

    问题二:

    我通过获得access_token ,截取我需要的这个字段,通过下面代码。说是我参数错误。不懂哪里设置问题了

    ,我看那边说浏览器直接可以,我试了一下确实,而起通过一下代码会有问题。我看pdf后面说要进行两次urlencode,我现在还不知道甚么意思。望懂的讲讲

    2017-04-06合成成功,改用urlwrite写文件.

    URL='http://tsn.baidu.com/text2audio';

    Name='get';

    Value={

          'tex',urlencode(words),...

          'lan','zh',...

           'cuid','AC-16-2D-52-3B-47',...

           'ctp','1',...

           'tok',tok,...

           'per',num2str(girl)};


    [filepath,status]= urlwrite(URL,filename,Name,Value);


  • 0 评论
    xujiayuxjy 2017年4月6日回答

    IsonGT:

    希望有一份java的例子提供参考,我写好的java后台方法测试总是提示"err_msg": "parameter error.","err_no": 501。如果正常在浏览器地址栏请求是可以正常显示的。只是在后台运行就报错

    HttpURLConnection conn = (HttpURLConnection) new URL(serverURL).openConnection();

    // 设置请求参数

    JSONObject params = new JSONObject();

    params.put("tex", URLEncoder.encode(URLEncoder.encode("广州中科诺泰技术邮箱公司", "utf-8"), "utf-8"));

    params.put("lan", URLEncoder.encode(URLEncoder.encode("zh", "utf-8"), "utf-8"));

    params.put("ctp", URLEncoder.encode(URLEncoder.encode("1", "utf-8"), "utf-8"));

    params.put("tok", URLEncoder.encode(URLEncoder.encode(token, "utf-8"), "utf-8"));

    params.put("cuid", URLEncoder.encode(URLEncoder.encode(cuid, "utf-8"), "utf-8"));

    // add request header

    conn.setRequestMethod("POST");

    conn.setRequestProperty("Content-Type", "json/html; charset=utf-8");

    conn.setDoInput(true);

    conn.setDoOutput(true);

    System.out.println("转码前:" + params.toString());

    //URLENCODE转码

    String s = params.toString();

    System.out.println("转码后:" + s);

    // 发送接受

    DataOutputStream wr = new DataOutputStream(conn.getOutputStream());

    wr.writeBytes(s);

    wr.flush();

    wr.close();


    以上是例子代码,我希望是获取二进制流的。


    回复IsonGT:我使用的matlab里面自带用的是嵌入的java。根据我使用成功的那个样例。里面涉及到的文件输出代码为

    function [file,fileOutputStream] = getFileOutputStream(location)

    % Specify the full path to the file so that getAbsolutePath will work when the

    % current directory is not the startup directory and urlwrite is given a

    % relative path.

    file = java.io.File(location);

    if ~file.isAbsolute

       location = fullfile(pwd,location);

       file = java.io.File(location);

    end


    try

        % Make sure the path isn't nonsense.

        file = file.getCanonicalFile;

        % Open the output file.

        fileOutputStream = java.io.FileOutputStream(file);

    catch

        error(mm('urlwrite','InvalidOutputLocation',char(file.getAbsolutePath)));

    end


  • 0 评论
    xujiayuxjy 2017年4月8日回答

    前几天好好的,今天不知道是电脑还是甚么问题。获取链接失败,上次保留的数据链接倒是还能用

  • 0 评论
    404NotFound_1 2017年4月27日回答

    用Unity做语音合成PC端,WWW类不支持返回的MP3文件流,该如何处理

  • 0 评论
    bbwolong 2017年5月2日回答

    不支持C#吗?Demo没有C#代码的啊

  • 0 评论
    benleilei 2017年6月5日回答

    不能用 javascript 直接调用?

    现在都是前后端分离的了,使用 vue 开发

  • 0 评论
    fujiayi1984 2017年6月6日回答

    benleilei:

    不能用 javascript 直接调用?

    现在都是前后端分离的了,使用 vue 开发

    回复benleilei:

    node可以使用,浏览器js不能跨域,因此不能使用,需要您自己的服务器做支持

  • 0 评论
    worldsee 2017年10月26日回答

    支持粤语语音合成吗

  • 0 评论
    宇智波YF 2017年11月7日回答

    字数太少了  最大512个字   长文本有什么好的解决方案

  • 0 评论
    13848186 2017年11月24日回答

    nodejs使用语音合成,使用request请求,为什么得到数据body数据的长度要比headers里content-length少

撰写答案