在文件夾中創建一個sh文件,內容如下:
#!/bin/bash say() { #mplayer -really-quiet "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=$*"; #mpg321 -q "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=$*" #curl -o /tmp/1.mp3 -s "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=$*" ; mpg321 /tmp/1.mp3 -q sox -t mp3 "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=$*" -t wav - | sudo fm -freq 90 -audio - } say $*
調用方式:
解釋:
這里的fm是用在Raspberry Pi Zero中當作FM廣播用的,這里使用了90MHz頻率。
這里是利用了百度在線TTS,其實還有訊飛的等
還有在線合成工具:http://tools.bugscaner.com/tts/
應用場景:在crontab中定時播報時間,事件提醒等
如果是英文內容需要播報,還可以使用:http://dict.youdao.com/dictvoice?audio=very%20good
原文鏈接:https://blog.csdn.net/wyyyh9458/java/article/details/84060724
==========================================================================
如果你是使用的Python腳本的,可以到網上參考pyttsx試試:
安裝pyttsx,在命令行輸入pip install pyttsx
如果是python3,在命令行輸入pip3install pyttsx3
==========================================================================
Linux通過shell命令實現語音報時功能
前言
上一周Linux操作系統實驗課要求實現如題的功能,在網上查了一些資料發現網上很少有相關的內容,於是准備自己寫一份。
別人的方法
使用Ubuntu系統自帶的語音功能,然后將date命令的輸出內容全部念出來,命令如下:
$ espeak -vzh "現在時間是`date +%T|sed -e 's/:/時/1;s/:/分/1;s/$/秒/'`"
保存成shell文件,我把他命名為saytime.sh
。
在Linux終端運行它:
$ bash saytime.sh
嘗試了一下系統自帶的語音功能,效果確實比較差,所以強迫症的我開始選擇另一種方法。
參考資料:http://ju.outofmemory.cn/entry/228459
我的方法
我所用的方法是調用百度的ttsAPI。首先,安裝mplayer,mplayer是一個多功能多媒體播放器。
$ sudo apt-get install mplayer
創建一個shell腳本文件,
$ gedit voice.sh
#!/bin/bash |
然后保存退出,運行此腳本:
$ bash voice.sh
實現定時功能
腳本已經有了,還有一個要求就是整點報時。可以想到是設置定時任務,讓voice.sh
在整點運行。命令crontab
是linux
任務計划功能,-e
選項是指定計划任務。
$ crontab -e
進入vim界面,輸入如下:
0 * * * * sh 地址
上述代碼中的地址是voice.sh
的絕對路徑。例如:/home/suda/voice/voice.sh
Done!功能實現!