Linux使用Shell在線語音播報功能


在文件夾中創建一個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

str="現在時間是`date +%T|sed -e 's/:/時/1;s/:/分/1;s/$/秒/'`"
wget "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text=$str" -O - -o /dev/null |mplayer -cache 1024 ->/dev/null 2>&1

然后保存退出,運行此腳本:

$ bash voice.sh

實現定時功能

腳本已經有了,還有一個要求就是整點報時。可以想到是設置定時任務,讓voice.sh在整點運行。命令crontablinux任務計划功能,-e選項是指定計划任務。

$ crontab -e

進入vim界面,輸入如下:

0 * * * * sh 地址

上述代碼中的地址是voice.sh的絕對路徑。例如:/home/suda/voice/voice.sh

Done!功能實現!

 

 

出處:https://www.dazhuanlan.com/2019/12/11/5df0b464ca9a3/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM