树莓派智能语音助手之TTS - pyttsx3 + espeak

server/2024/9/22 23:38:47/

要让树莓派“开口说话”,就需要文字转语音的功能。起初选用Coqui-TTS,需要安装torch2.1(因为TTS需要torch>=2.1.0),结果没有找到现成的whl文件(目前找到的torch可用版本是1.8),只能放弃。然后就选择了pyttsx3+espeak方案来实现语音合成

pyttsx3的安装直接输入 pip install pyttsx3 就ok了。

在终端输入 touch test.py ,然后用 sudo nano test.py编辑:

import pyttsx3

def text_to_speech(text):

    engine = pyttsx3.init()

    engine.setProperty('volume', 1) 

    engine.say(text)

    engine.runAndWait()

    engine.stop()

text_to_speech('hello')

保存好test.py,在终端输入python3 test.py,怎么没有声音?

查了查,有说Linux上要装espeak。二话不说,继续开干: sudo apt install espeak

然后再用python3 test.py,终于听到略显僵硬的男声“hello”了。

要想听中文怎么设置?很简单,首先在pyttsx3.init()的括号里加入’espeak’,然后在engine.say()前新增一行engine.setProperty(‘voice’,’zh’)。这时候text变成中文,程序执行的时候就是中文了。如果要听女声,新增的这句就改成engine.setProperty(‘voice’,’zh+f3’)。

执行中文发音的时候会得到一个“Full dictionary is not installed for ‘zh’”的报错,解决方案如下:

1、重新下载语音包

git clone https://github.com/caixxiong/espeak-data/

cd espeak-data/

unzip espeak-data.zip

cd espeak-data/

2、拷贝解压文件到原安装包对应目录

 sudo cp -r * /usr/lib/arm-linux-gnueabihf/espeak-data/

3、编译中文包

sudo espeak --compile=zh

4、编译成功后需要把原来wget下载的espeak-data目录全部整体删除,

sudo rm -rf espeak-data

不然可能会报错:

树莓派可以读中文啦!!不过要吐槽下,这个合成的声音真的很机械,不好听。

有什么办法让声音变得更柔和些吗?

参考文章:

《linux espeak语音tts;pyttsx3 ubuntu使用》

《Python第三方库推荐:pyttsx3


http://www.ppmy.cn/server/98346.html

相关文章

Linux 系统框架分析(一)

一、linux内核结构框图 对内核结构框图有个总体的把握,有助于理解为什么驱动要这样写,为什么写的应用程序所用的C库接口能够产生这么多的事情。 框图可以看出来,linux系统,包括五个系统 一、Linux内核结构介绍 Linux 内核是操作…

xUnit 单元测试、加密解密

一、xUnit 单元测试 官网地址:Home > xUnit.net 1、概述 1.1、新建个控制台项目 public class Class1{public int Add(int x, int y){return x y;}} 2、建个xUnit测试项目 public class UnitTest1{[Fact]public void Test1(){Class1 class1 new Class1();…

ceph分布式存储系统

ceph ceph是一个开源的,用c语言编写的分布式的存储系统,存储文件数据。 lvm 逻辑卷 可以扩容 raid 磁盘阵列 高可用 基于物理意义上的存储系统 分布式就是多台物理磁盘组成的一个集群,在这个基础之后实现高可用,扩展 特点&#x…

Redux

Redux redux是什么? redux是一个专门用于做状态管理的JS库(不是react插件库)它可以用在react,angular,vue等项目中,但基本与react配合使用作用:集中式管理react应用中多个组件共享的状态 什么…

cocos 触摸2d屏幕拖动3d节点思路

根据屏幕点击的2d坐标,以及3d摄像机,生成一条带方向的3d射线检测,被射线碰撞的物体,就可以获取到射线碰撞到3d物体上的具体坐标点,然后根据这个坐标点设置被拖动3d节点的位置。 核心代码: //触摸移动onTo…

职业本科大数据实训室

一、职业本科大数据实训室建设背景 在数字化浪潮汹涌澎湃的今天,大数据已跃升为引领社会进步和经济发展的新引擎。随着《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》的深入实施,数字化转型作为国家战略的重要组成部分&…

LlamaIndex 实现 React Agent

React Agent 是指 LLM 对问题自行推理并调用外部工具解决问题,如下图所示,通过一些推理步骤最终找到想要的答案。 LlamaIndex 提供了实现 React Agent 的框架,通过框架可以轻松的实现上图中的步骤。那么,如果不用 LlamaIndex 应该…

生成式人工智能安全评估体系构建

文章目录 前言一、人工智能安全治理的现状1.1 国际安全治理现状1.2 国内安全治理现状二、构建人工智能安全评估体系1.1 需要对生成式人工智能技术的安全性、可靠性、可控性、公平性等维度进行全面的考量。1.2 应对生成式人工智能全维度风险。1.3 在体系化应对框架中,应明确法律…