page contents

PHP实现智能语音播报

以下内容希望帮助到大家!

attachments-2020-03-B3LQGpY95e82e070f2e08.png

大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很高大上,都说PHP是最好的编程语言,今天我就带大家来实现一个语音播报功能,写个美女叫你早上起床!

先大体说一个思路,PHP怎么实现语音播报呢?其实就是调个API(接口)的事情,这个就尴尬了。

实际上,现在很多AI平台都提供一些成熟的接口供你使用,比如语音转文字,文字转语音,语音唤醒等等,思路就是使用PHP获取当前的时间和天气状况,然后调用接口转换成甜美的妹子语音播放出来。

你没看错,就是这么简单!


第一步:获取时间信息

举个例子,文字内容可能是这样:“主人,早上好,今天是2017年12月18号上午8点整,星期一”,这样的内容用PHP自带的几个时间函数就能搞定,然后拼接成字符文字!下面是一些简单实例代码:

v2-1f294342f2a1900b53db94520a3fb7a6_720w.jpg


PHP实现智能语音播报天气

获取时间


第二步:获取天气状况

举个例子,文字内容可能是这样:“今天天气多云转晴,温度5-15度,湿度80%,空气污染指数69”。要想找到一个靠谱而又免费的api还有点麻烦,很多免费的api提供的天气信息都比较简单,只有天气状况和温度,没有未来天气状况,最后我就找了个凑合用,谁有更好的api留个爪。实例代码如下:

v2-39c0894e1f9932ea1da430cc2c0739d5_720w.jpg


PHP实现智能语音播报天气

天气状况


第三步:语音合成

这个是调用的百度的接口,首先呢,你得去百度那注册一个账号,获取开发者的key和secret,会有一些免费的调用次数,不拿去商用的话完全够了!然后下载百度提供的SDK,用法非常简单,实例代码如下:

v2-68089a76c3c5048ab3d391ae108806f5_720w.jpg


PHP实现智能语音播报天气

大家可以看到最后的返回的内容被我存到/tmp/audio.mp3这个文件里面去了(这里使用的是Ubuntu系统),这里可能会有一个写入权限问题,建议大家最后执行脚本的时候加上sudo。

第四步:播放合成之后的语音文件

我们不可能去用音乐播放器手动播放,其实Linux在命令行下也可以播放音乐,需要安装一个软件,直接给大家Ubuntu下的安装命令:

sudo apt-get install sox libsox-fmt-all

安装完成之后就可以使用play命令播放音乐,举个例子:play hello.mp3

所以接下来我们就可以使用PHP去执行播放命令,实例如下:

exec('sudo /usr/bin/play /tmp/audio.mp3');

最后,在Linux里面运行脚本,让脚本常驻后台,示例如下:

/usr/bin/php /var/www/demo/BaiduSound/index.php > /dev/null 2>&1 &

以上就是全部步骤,剩下的大家发挥想象力,比如定时给你播报一些股票信息、播放歌曲、早上定时叫你起床。

从理论上说我们还可以调用百度API接口去识别我们的语音命令,然后根据命令去执行操作,这样岂不是就是一个AI音响了?

哈哈,纯属娱乐,这个方案有一个问题就是你得保证你的电脑一直是开机状态,有点浪费电,有兴趣的童鞋可以买个类似树莓派这样的低功耗设备去运行。



attachments-2020-03-eWxmW4ue5e82e61d96c1d.jpg

  • 发表于 2020-03-31 14:19
  • 阅读 ( 377 )
  • 分类:PHP开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章