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 |
然后保存退出,运行此脚本:
$ bash voice.sh
实现定时功能
脚本已经有了,还有一个要求就是整点报时。可以想到是设置定时任务,让voice.sh
在整点运行。命令crontab
是linux
任务计划功能,-e
选项是指定计划任务。
$ crontab -e
进入vim界面,输入如下:
0 * * * * sh 地址
上述代码中的地址是voice.sh
的绝对路径。例如:/home/suda/voice/voice.sh
Done!功能实现!
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/12931211.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2020-05-21 15:46 jack_Meng 阅读(2314) 评论(0) 编辑 收藏 举报