php调用讯飞语音合成

开发背景:需要机器阅读文档,看了bat和讯飞的,领导决定用讯飞的,其实bat的也非常好
废话又多了,直接看代码吧

header("Content-type: text/html; charset=utf-8");
$url = ‘http://api.xfyun.cn/v1/service/v1/tts‘;
$appid = ‘xxxxx‘;
$appkey = ‘xxxxxxx‘;
$data = array(
    ‘auf‘ => ‘audio/L16;rate=16000‘,
    ‘aue‘ => ‘lame‘,
    ‘voice_name‘ => ‘xiaoyan‘,
);
$time = (string) time();

$xparams = base64_encode(json_encode($data));
$checksum = md5($appkey . $time . $xparams );

$header = array(
    ‘X-CurTime:‘ . $time ,
    ‘X-Param:‘ . $xparams,
    ‘X-Appid:‘ . $appid ,
    ‘X-CheckSum:‘ . $checksum,
    ‘X-Real-Ip:127.0.0.1‘,
    ‘Content-Type:application/x-www-form-urlencoded; charset=utf-8‘,

);
$content = array(
        ‘text‘ => ‘陈寿给曹操的第一个评价叫机智聪明,曹操从小就聪明,而且还很有学问。曹操是一个大文学家,甚至于他开创了一个文学时代。所谓建安风骨开创者就是三曹,开先河的第一个人就是曹操,然后才是他的俩儿子。后来才有的建安七子,曹操是的聪明人这是毫无争议这个评价很准确。有争议的是这个聪明是不是用对了地方,要是没有品德的支撑,人越聪明越是祸害。后来历史中对陈寿说的这个聪明就是他用错了地方,心术不正,这是后人的评论,但是陈寿并没有这么说。第二个评价就是曹操从小就有权数,原文用的就是权数这两个字。这个权数和会使用权利不是一个意思,权在古代是计算的意思,数在古代不是计算的意思,而是变化的意思。‘
);

$response = tocurl($url, $header, $content);
$header = $response[‘header‘];
$file = ‘./audio/‘;
if($header[‘content_type‘] == ‘audio/mpeg‘){
    $filename .=  $file . $time . ‘.mp3‘;
    $res = file_put_contents($filename, $response[‘body‘]);
    var_dump($res);
}else{
    echo $response[‘body‘];
}

 /**
 * 发送数据
 * @param String $url     请求的地址
 * @param Array  $header  自定义的header数据
 * @param Array  $content POST的数据
 * @return String
 */
function tocurl($url, $header, $content){
    $ch = curl_init();
    if(substr($url,0,5)==‘https‘){
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
    $response = curl_exec($ch);
    $error=curl_error($ch);
    //var_dump($error);
    if($error){
        die($error);
    }
    $header = curl_getinfo($ch);

    curl_close($ch);
    $data = array(‘header‘ => $header,‘body‘ => $response);
    return $data;
}

上述是完成的代码;

这里面有几个主要注意的地方

1.要在你自己的应用里添加ip白名单;否则无法响应

2.出现错误了,多翻阅错误码和返回的提示,很有帮助

3.不懂了可以联系我

原文地址:https://www.cnblogs.com/ailingfei/p/9272822.html

时间: 2024-10-08 12:00:39

php调用讯飞语音合成的相关文章

【从零之三(更)】自定义类中调用讯飞语音包错误解决办法

原文:http://blog.csdn.net/monkeyduck/article/details/24302655 在科大讯飞语音包的Mscdemo中它的方法都是写在Activity中的,这样其实并不是很好,因为Activity只是负责UI交互的,如果项目很简单自然可以,但是一旦比较复杂肯定要自己定义很多包很多类,但是写在Activity中的方法就不能被自己定义的类调用了,咋办尼,那就把方法写在自己的类里就行了.准备工作:把Msc.jar包和libmsc.so拷贝到自己工程的libs目录下,

android用讯飞实现TTS语音合成 实现中文版

Android系统从1.6版本开始就支持TTS(Text-To-Speech),即语音合成.但是android系统默认的TTS引擎:Pic TTS不支持中文.所以我们得安装自己的TTS引擎和语音包. 在项目中,一开始用的是手说TTS,免费版的,感觉声音很不僵硬,不自然,不连贯.付费版的还要钱激活,如果不激活,限制每次只能度5个字,而且比免费版也好不了多少.最后采用了讯飞语音TTS1.0,发音连贯自然,个人感觉很不错了,以后就用它. 介绍下使用方法: 1.首先下载讯飞的语音包apk,以及语音引擎a

UNITY 接讯飞语音过程总结

11:13 2017/3/141,安装问题:JDK与ECLIPSE位数一定要对应,32位对64位会出现 java was returned ....code 13的弹框错误.版本号可以不一致.2,ECLIPSE 启动后,需要设置JRE路径,否则代码提示错误.3,智能提示问题:在window -preference -java -editor下设置 .为 .abcdefghijklmnopqrstuvwxyz 17:05 2017/3/17讯飞SDK接入UNITY过程:1,导入unity的类包cl

讯飞在线语音合成

讯飞在线语音合成 效果图 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9062261 下载SDK 1. 选择服务 2. 选择平台 3. 选择应用 4. 下载SDK 说明 之前的工程都是在Eclipse下演示的,随着Android Studio的普及,我这里也开始使用Android Studio写Demo,虽然细节导入jar包和so库的过程可能不太一样,但是整体的流程是一样的. 将jar包和so库导入Andr

初探科大讯飞-讯飞开放平台之语音合成

1:讯飞开放平台提供了很多服务,有语音相关的:离线,在线语音合成及识别:人机交互:有模式识别相关的:人脸识别,声纹识别:还要云存储等等,如有兴趣,自行百度. 2:看了下官方SDK,试着体验下.导入两个jar包到lib目录,以及两个dll和so文件放到工程根目录. 本次先体验下语音合成模块. 语音合成主要涉及一个类,如下,完成语音的合成 import com.iflytek.cloud.speech.SpeechConstant; import com.iflytek.cloud.speech.S

讯飞离线语音合成(离线资源包)

讯飞离线语音合成(离线资源包) 讯飞的语音合成有三种方式 在线语音合成(免费) 离线使用语记语音合成(免费,需要本地装一个语记App并且下载离线资源) 使用讯飞离线语音包(付费) 这里使用离线资源包实现离线语音合成,因为正式版是要付费的,所以这里使用试用的离线包(35天试用期.3个装机量). 效果图 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9063779 开通服务,下载SDK 之前已经介绍过,地址:ht

语音识别、语音合成使用基础(讯飞开放平台)

1.在http://www.xfyun.cn进入讯飞开放平台. 创建应用 创建完毕 下载SDK(单个或组合下载):选择服务 选择平台 选择自己之前创的应用 2.下载完毕后,将(F:\讯飞开放平台\Android_voice_1098_574d92ab\libs)libs里面的Msc.jar.armeabi复制到项目中 其中在官网的资料库-开发集成-Android平台有教你怎么使用. 例子: 1.布局分布如下 <LinearLayout xmlns:android="http://schem

讯飞离线语音合成(语记|语音+)

讯飞离线语音合成(语记|语音+) 讯飞的语音合成有三种方式 在线语音合成(免费) 离线使用语记语音合成(免费,需要本地装一个语记App并且下载离线资源) 使用讯飞离线语音包(付费) 这里使用语记实现离线语音合成 效果图 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9063593 说明 使用语记实现离线语音合成和在线语音合成的步骤非常相似,下载SDK的方式是一样的,一样是选择在线语音合成,只不过是使用离线引擎

Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法

现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种是直接调用SDK为开发者设计好的弹出框,开发者不需要开发识别交互界面:还有一种是开发者只利用SDK提供的语音识别服务,自己开发一个属于自己的交互设计. 本文介绍最简单直接调起弹出框的方法. 首先,测试机需要安装如谷歌语音.百度语音.讯飞语音等产品的语音软件,这时可以在系统设置界面的语言与输入处找到相