企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很高大上,都说PHP是最好的编程语言,今天我就带大家来实现一个语音播报功能!先大体说一个思路,PHP怎么实现语音播报呢?其实就是调个API(接口)的事情,这个就尴尬了。实际上,现在很多AI平台都提供一些成熟的接口供你使用,比如语音转文字,文字转语音,语音唤醒等等,这里我使用的是百度的语音合成接口(https://ai.baidu.com/tech/speech/tts),思路就是使用PHP将文字调用接口转换成甜美的妹子语音播放出来。 来。。。你没看错,就是这么简单! 模拟业务场景:有时候我们需要在办公室里对收到的每一笔订单进行播报,那么这种需求可能就需要我们自己开发咯! 今天博主基于百度AI平台的语音合成SDK做了一个简单的demo,Demo基于手动点击按钮进行播报,业务场景是触发播报: 演示链接: [演示地址](https://zz1.com.cn/speech/index/audio) 实际上,上线的项目可能流量较大,下单量也较大比较频繁,这种情况您可以采用队列来解决;每次有新的订单完成后,将语音播报的代码丢入队列,一个一个进行播报。 以下示例代码仅供学习参考:根据实际情况,你可以将代码进行封装。 ``` /** * 文字转换语音播报的代码 * @return mixed */ public function audio() { if(request()->isPost()){ $text = input('post.text'); Loader::import('/aip_speech/AipSpeech',EXTEND_PATH); $client = new \AipSpeech(config('speech.appid'), config('speech.api_key'), config('speech.secret_key')); $result = $client->synthesis($text, 'zh', 1, array('pit'=>10,'vol' => 10,'per'=>0)); //识别正确返回语音二进制 错误则返回json 参照下面错误码 if(!is_array($result)){ $path = 'uploads'.DS.'audio'.DS; if(!is_dir($path)) mkdir($path, 0755, true); $audioFile = Time::get13TimeStamp().'_audio.mp3'; file_put_contents($path.$audioFile, $result); echo json_encode(['code'=>1,'audioFile'=>DS.$path.$audioFile]);exit; }else{ echo json_encode(['code'=>0,'msg'=>'文字转换语音失败']);exit; } }else{ return $this->fetch(); } } ``` SDK存放目录(官方有下载哦) ![](https://zz1.com.cn/uploads/20181020/4d3a62780a761a8666767229b83272f4.png) 以上就是语音播放的Demo,剩下的大家可以发挥一下想象力,比如定时给你播报一些股票信息、播放歌曲、早上定时叫你起床。从理论上说我们还可以调用百度API接口去识别我们的语音命令,然后根据命令去执行操作,这样岂不是就是一个AI音响了?哈哈,纯属娱乐... ... 原文阅读:[PHP实现语音播报功能](https://zz1.com.cn/php-voice-announcements.html)