zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    Mysql中limit的用法详解
    EXCEPTION与ERROR的区别
    调用sed命令的三种方式
    学编程一定要上大学?美国一半码农都没有计算机学位
    awk 循环语句例子
    Ubuntu 16.04 LTS今日发布
    Ubuntu启动eclipse问题
    Vim技能修炼教程(6)
    Vim技能修炼教程(7)
    Vim技能修炼教程(5)
  • 原文地址:https://www.cnblogs.com/mq0036/p/12931211.html
Copyright © 2011-2022 走看看