PHP实现智能语音播报

原文地址 https://www.jianshu.com/p/91a046ec6ebc

大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很高大上,都说PHP是最好的编程语言,今天我就带大家来实现一个语音播报功能,写个美女叫你早上起床!先大体说一个思路,PHP怎么实现语音播报呢?其实就是调个API(接口)的事情,这个就尴尬了。实际上,现在很多AI平台都提供一些成熟的接口供你使用,比如语音转文字,文字转语音,语音唤醒等等,这里我使用的是百度的语音合成接口(https://ai.baidu.com/tech/speech/tts),思路就是使用PHP获取当前的时间和天气状况,然后调用接口转换成甜美的妹子语音播放出来。。。你没看错,就是这么简单!

第一步:获取时间信息

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

PHP实现智能语音播报天气

获取时间

第二布:获取天气状况

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

PHP实现智能语音播报天气

天气状况

第三步:语音合成

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

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

原文地址:https://www.cnblogs.com/php-linux/p/11840834.html

时间: 2024-10-07 00:01:49

PHP实现智能语音播报的相关文章

Android开发笔记(一百零八)智能语音

智能语音技术 如今越来越多的app用到了语音播报功能,例如地图导航.天气预报.文字阅读.口语训练等等.语音技术主要分两块,一块是语音转文字,即语音识别:另一块是文字转语音,即语音合成. 对中文来说,和语音播报相关的一个技术是汉字转拼音,想想看,拼音本身就是音节拼读的标记,每个音节对应一段音频,那么一句的拼音便能用一连串的音频流合成而来.汉字转拼音的说明参见<Android开发笔记(八十三)多语言支持>. 语音合成通常也简称为TTS,即TextToSpeech(从文本到语言).语音合成技术把文字

python实现智能语音天气预报

前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 飞奔的帅帅 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 本系统主要包括四个函数: 1.获取天气数据 输入要查询天气的城市 利用urllib模块向中华万年历天气api接口请求天气数据 利用gzip解压获取

文字转语音,语音合成,文字语音播报---解决过程

做了很久生产项目 经常遇到一个问题:就是想把文字用语音播报出来:当然了声音要清晰,好听,不能太机械.  这个问题怎么解决呢?一般不外乎两种方法,第一种,将文字录成MP3格式用控件播放.另外一种:直接文字语音播报. 我一直都是用第一种方法居多,但是最近遇到个棘手的事情,就是数量巨大和文字变动较大.因此深入研究了下,记录下过程. 第一种方法:就是费时费力但是好处是人工转换了删选了效果比较好.但是两大或者文字变动 是个大隐患. 第二种方法:用微软自带的tts引擎,效果不好.播放不清晰,好处是com组件

智能语音录制程序

一个变态程序的窥私欲:智能语音录制程序——窃听神器(源码放送!) 1. 我这人从小有个坏毛病,就是喜欢偷窥别人隐私.当然,在道德上,我时刻要求自己做一名正人君子,只不过是心理上有这癖好罢了.所以我从小就对窃听.窃视.黑客技术.破解技术等疯狂着迷!实际上这也是我走上程序员之路的一个重要原因! 或许正如弗洛伊德所说的那样,潜意识里面暗藏的原始欲望,是我们一切行为背后的真正动因.就像不可一世的希特勒和他野心勃勃的奋斗一样,归根到底只是因为他是一个自卑的抖S. 2. 今天说的这个事呢还要从两年前说起.那

语音播报-文字转系统声音

一段文字,让系统用语音播出,使用AVFoundation框架下的AVSpeechSynthesizer即可,非常简单. 步骤1,导入AVFoundation框架: 1 import AVFoundation 步骤2,创建语音合成器: 1 /// 语音合成器 2 private lazy var speechSynthesizer:AVSpeechSynthesizer = { 3 let speech = AVSpeechSynthesizer() 4 return speech 5 }() 步

Android语音播报、后台播报、语音识别

Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 讯飞开放平台:http://www.xfyun.cn/index.php/default/index 程序效果图: 简单的XML布局 <?xml version="1.0" encoding="utf-8"? > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/and

实现百度地图导航Demo的语音播报功能

上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.php?title=android-navsdk/guide/voice SDK内置百度TTS语音播报功能,需要对应用进行授权验证才能够使用,因此需要主动注册应用相关信息. 第一步:如果不是LBS开放平台的注册开发者,首先需要登录LBS开放平台进行应用注册,在工程配置的AndroidManifest中

一场由度秘掀起的智能语音连接O2O大战正在爆发

提到O2O,日前刘旷刚刚在微信朋友圈发布的一条针对百度世界大会的评论引发了好友们的纷纷点赞,我在评论中这样写道:“唱衰O2O的罪魁祸首就是美国资本家,他们先是掏空中国股市.打压中国互联网公司,而后制造舆论唱衰中国的O2O,企图破坏李克强总理提出的互联网+经济战略,我相信只要百度以及中国千千万万的创业者脚踏实地做好连接人与服务,不过度迷恋资本,中国定能实现在互联网+时代超越美国.” 三人成虎,人言可畏呐!美国资本家最擅长的就是制造舆论,引导大批没有主见的中国网民.于是,各种O2O寒冬论谣言四起,而

iOS - 根据推送消息进行语音播报

目前市面上很多聚合支付APP都需要在收款成功后,进行语音提示,例如收钱吧,乐惠等!公司App融E收也同样需要实现改功能,主要分为2个部分,一是推送,而是语音播报,下面简单介绍一下 一 推送,目前集成的推送主要是极光推送,集成极光推动的流程比较简单,主要流程是 1.注册账号,在极光推送官网上注册账号,地址:https://www.jiguang.cn/accounts/register/form 2.登录账号,右上角点击创建应用,填写应用名称,上传应用icon,点击创建 3.上传推送证书,做APN