<?php
/*** 文字转语音接口* 使用了阿里云的 语音合成REST接口* * 输入 get  ren  0|1 女男声* 输入 get  dir  文本 语音种类* 输入 post body 文本 语音原始文本* 返回 json* * 请以UTF-8格式编码后将需要合成的语音文本在POST body中上传* 单次请求限制为300个UTF-8字符,即每个汉字、数字、字母都算一个字符*/header('Access-Control-Allow-Origin:*');
header('Content-Type:application/json');/* 验证来源域名 */
//$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';/* 获得请求参数 */
//*
$txt = file_get_contents("php://input");
/*/
$txt = '金乡市场上货量在200辆左右,蒜车较昨日同时段略有减少,商贩要价随行或者坚持,开单验货的有十几家,以入库采购为主,收储商拿货积极性一般,挑拣一般质量的货源,交易氛围不浓,下货速度平缓,价格变动不明显。';
//*/if($txt == ''){echo '{"code":0,"txt":"txt is null"}';die();
}$type = 'mp3';$ren = isset($_GET['ren']) ? $_GET['ren'] : 0;switch ($ren) {case  0: $voice_name = 'xiaoyun'; break;case  1: $voice_name = 'xiaogang'; break;default: $voice_name = 'xiaoyun';
}$dirtxt = isset($_GET['dir']) ? $_GET['dir'] : 'dir';
$dirname = substr(md5($dirtxt),0,8);
$dirpath = dirname(__FILE__) .'/' . $dirname .'/';
mkdirs($dirpath);/*名称   类型  需求  缺省值     描述encode_type   String  选填  pcm     合成语音的编码格式,支持pcm/wav/mp3/alawvoice_name   String  选填  xiaoyun     xiaogang - 男,xiaoyun - 女volume   int     选填  50  0~100sample_rate     int     选填  16000   抽样频率率 8000/16000speech_rate  int     选填  0   语速 -500~500pitch_rate    int     选填  0   语调 -500~500tts_nus   int     选填  1   0 - 通过参数合成语音,1 - 拼接原始录音background_music_id   int     选填  无   播放语音时可选背景音乐,0,1background_music_offset    int     选填  0   背景音乐播放偏移时长,毫秒。当启用背景音乐时生效background_music_volume  int     选填  50  背景音乐音量,当启用背景音乐时生效,0~100*/$postUrl = 'https://nlsapi.aliyun.com/speak?encode_type='. $type .'&voice_name='.$voice_name.'&volume=100&tts_nus=1&speech_rate=50';$filename = sha1(sha1($postUrl).sha1($txt)) . '.' . $type;
$filepath = $dirpath . $filename;if(file_exists($filepath)){//文件存在,直接返回echo '{"code":1,"txt":"'.$dirname . '/' . $filename.'"}';
}else{/* 阿里云接口数据 *//* 语音合成请求实例POST https://nlsapi.aliyun.com/speak?encode_type=pcm&voice_name=xiaoyun&volume=50Date: Tue, 21 Mar 2017 11:42:00 GMTContent-type: text/plainAuthorization: Dataplus *****Accept: audio/pcm, application/jsonContent-Length: 36需要被转换的文本*//* (直播服务器) */$access_id = '';$access_secret = '';$method = 'POST';$accept = 'audio/'. $type .', application/json';$content_type = 'text/plain';$date = gmdate('D, d M Y H:i:s T');$bodyMd5 = base64_encode(md5($txt, true));$feature = $method . "\n" . $accept . "\n" . $bodyMd5 . "\n" . $content_type . "\n" . $date;$signature = base64_encode(hash_hmac("sha1", $feature, $access_secret, true));$header = array();$header[] = 'Authorization: Dataplus ' . $access_id . ':' . $signature;$header[] = 'Content-type: '.$content_type;$header[] = 'Accept: '.$accept;$header[] = 'Date: '.$date;$curl = curl_init();curl_setopt($curl, CURLOPT_URL, $postUrl);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);curl_setopt($curl, CURLOPT_CAINFO, dirname(__FILE__).'/aliyuncom.pem');curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_HTTPHEADER, $header);curl_setopt($curl, CURLOPT_POSTFIELDS, $txt);curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);curl_setopt($curl, CURLOPT_HEADER, 0);$r = curl_exec($curl);//var_dump($r);//$headerSize = curl_getinfo($r, CURLINFO_HEADER_SIZE);//$header = substr($r, 0, $headerSize);//echo $header;$content_type = curl_getinfo($curl,CURLINFO_CONTENT_TYPE);//echo "_{$content_type}_\n";if($content_type == 'audio/mp3'){file_put_contents($dirname . '/' . $filename, $r);echo '{"code":1,"txt":"'.$dirname . '/' . $filename.'"}';}else{echo '{"code":0,"txt":"curl error"}';}curl_close($curl);
}//建立多级目录
function mkdirs($dir){if(!is_dir($dir)){if (!mkdirs(dirname($dir)))return false;if (!mkdir($dir,0755))return false;}return true;
}

转载于:https://my.oschina.net/u/2356887/blog/1840207

阿里云文字转语音接口相关推荐

  1. 阿里云发布智能语音自学习平台,零基础训练人工智能模型

    摘要: 业务人员甚至门卫大爷也能训练人工智能?曾经只出现科幻电影中的一幕真的发生了.7月18日,阿里巴巴机器智能技术实验室宣布在阿里云正式发布智能语音自学习平台公有云产品,突破性地提供一键式语音智能自 ...

  2. 阿里云短信发送接口直接HTTP请求调用

    最新一个个性化项目,客户要求使用阿里云短信发送接口. 但是实在不想引入阿里云的SDK,就自己生成签名,拼接URL实现,  其实用他们的SDK最终也是一哥GET请求进行调用,归根接底还是HTTP请求. ...

  3. C/C++开发,阿里云短信服务接口的c++实现

    目录 一.阿里云短信服务接口 二.逻辑代码实现 三.编译测试效果 一.阿里云短信服务接口 最近在调用阿里云短信服务接口发现并没有c++的资料,网上查询发现也是零星描述,由于自身项目基础累积了C++的太 ...

  4. Java spring boot 阿里云调用人脸识别接口,本地sdk上传到阿里云调用api

    Java spring boot 阿里云调用人脸识别接口 没有写测试类,工具类如下,有access_key_id和access_key_secret传参调用就可使用 代码如下: pom.xml依赖 & ...

  5. 阿里云邮件推送接口对接

    阿里云邮件推送接口对接 官方接口文档 PHP对接接口代码参考 官方接口文档 阿里云邮件推送 PHP对接接口代码参考 <?php /** @Author: kinra* @Date: 2021-0 ...

  6. FreeSWITCH 语音识别 阿里云ASR 2.0接口 接口实现

    FreeSWITCH 语音识别 阿里云ASR2.0 随着阿里云语音识别接口升级到智能语音交互2.0版接口,特开发了一个freeswitch模块,通过在freeswitch中加载语音识别模块,将通话的话 ...

  7. Postman调用阿里云HTTPS动态注册接口(一型一密)

    按照阿里云文档: 请求方式:post 地址格式: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device 如下图写入参数: sig ...

  8. 最新阿里云短信服务接口类【亲测成功】

    阿里大于 最新的阿里云短信接口,适用于阿里大于搬家以后的情况. 之前一直用阿里大于的短信接口,最近上项目时发现阿里大于悄悄地搬家到了阿里云!阿里云的SDK文件繁多,看得一头雾水!下面代码是最新的可适用 ...

  9. 阿里云ocr身份证识别接口调用

    1.阿里云界面点击搜索ocr,选择文字识别,开通服务,默认已登录阿里云账号 2.选择个人证件识别,身份证识别(每个月赠送200次体验) 3.点击产品文档 4.下拉到最后,选择RecognizeIdca ...

  10. python 阿里云平台合成语音(TTS)

    1. 安装阿里云python SDK core:  pip3 install aliyun-python-sdk-core-v3 2. 安装ali_speech python SDK, 从github ...

最新文章

  1. 这年头,机器翻译都会通过文字脑补画面了 | NAACL 2021
  2. java提高篇之数组(2)
  3. 网关过滤器验证token
  4. 点击调试时提示MFC不包含调试信息
  5. 加入了开源组织datawhale
  6. 力扣 距离顺序排列矩阵单元格
  7. 浅谈SnackBar(Toast大兄弟)
  8. Hadoop完全分布式安装Kafka
  9. 数据库操作 linq php,.NET_asp.net使用LINQ to SQL连接数据库及SQL操作语句用法分析,本文实例讲述了asp.net使用LINQ t - phpStudy...
  10. 关于大学生创新创业项目赛事汇总
  11. 【安全牛学习笔记】离线密码破解
  12. linux 命令获取屏幕亮度值,设置屏幕亮度
  13. OceanBase社区版4.0,给了我很多惊喜
  14. 1050: 找出直系亲属
  15. SEM竞价推广创意快速撰写的方法,智能创意制作
  16. 如何查看docker的版本号是多少
  17. 微信公众号支付完整流程
  18. 世上无难事,只要舍花钱
  19. [读书笔记]魔鬼约会学
  20. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)

热门文章

  1. Easyui 官网网址
  2. 主流编程语言的特点以及优缺点(一)
  3. 微信开发者工具 ETIMEDOUT
  4. 【常用表】常用泰勒公式与常用等价
  5. 高等数学---常见的几个泰勒公式
  6. export_savedmodel
  7. 访黏度计算公式_调节阀流量系数Kv的计算公式
  8. C# 使用 Response 导出 Excel 单元格格式设置为文本格式
  9. 计算机视觉及图像处理领域会议,CCF推荐(A类,B类,C类)
  10. AUTOCAD——合并图层