首頁  >  文章  >  後端開發  >  PHP如何實現智慧語音播報

PHP如何實現智慧語音播報

coldplay.xixi
coldplay.xixi原創
2020-08-03 14:03:013498瀏覽

PHP實現智慧語音播報的方法:首先獲取時間信息,並獲取天氣狀況;然後語音合成;最後播放合成之後的語音文件,代碼為【exec('sudo /usr/bin/play / tmp/audio.mp3')】。

PHP如何實現智慧語音播報

PHP實作智慧語音播報的方法:

第一步:取得時間資訊

舉個例子,文字內容可能是這樣:“主人,早安,今天是2017年12月18號上午8點整,星期一”,這樣的內容用PHP自帶的幾個時間函數就能搞定,然後拼接成字符文字!以下是一些簡單實例程式碼:

 PHP如何實現智慧語音播報

PHP實作智慧型語音播報天氣

取得時間

第二佈:取得天氣狀況

舉個例子,文字內容可能是這樣:「今天天氣多雲轉晴,溫度5-15度,濕度80%,空氣污染指數69」。要找到一個可靠又免費的api還有點麻煩,很多免費的api提供的天氣資訊都比較簡單,只有天氣狀況和溫度,沒有未來天氣狀況,最後我就找了個湊合用,誰有更好的api留個爪。實例代碼如下:

PHP如何實現智慧語音播報

PHP實現智慧語音播報天氣

天氣狀況

第三步:語音合成

這個是調用的百度的接口,首先呢,你得去百度那註冊一個帳號,獲取開發者的key和secret,會有一些免費的調用次數,不拿去商用的話完全夠了!然後下載百度提供的SDK,用法非常簡單,實例代碼如下:

PHP如何實現智慧語音播報

#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 &

相關學習推薦: php圖文教學

以上是PHP如何實現智慧語音播報的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn