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

embedded/2024/9/23 10:18:46/

要让树莓派“开口说话”,就需要文字转语音的功能。起初选用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/embedded/93315.html

相关文章

leetcode217. 存在重复元素,哈希表秒解

leetcode217. 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2&#x…

linux中如何查看是不是守护进程

linux中如何查看是不是守护进程在 Linux 中,要确定一个进程是否是守护进程,通常可以通过以下几个方面来进行判断:1. **检查进程是否与终端相关联**:- 使用 ps 命令查看进程的 TTY 列。- 守护进程通常没有控制终端,因此 TTY 列会显…

C# 高级数据处理:深入解析联接 Join 与 GroupJoin 操作的应用与实例演示

文章目录 一、联接概述二、Join 操作符1. Join 操作符的基本用法2. Join 操作符示例 三、GroupJoin 操作符1. GroupJoin 操作符的基本用法2. GroupJoin 操作符示例 总结 在数据处理中,联接(Join)操作是一种非常常见的需求,它允许我…

学习c语言第24天(练习)

编程题 第一题 最大公约数最小公倍数求和 //求最大公约数和最小公倍数之和 //暴力求解 //int main() //{ // int n 0; // int m 0; // while (scanf("%d %d", &n, &m)2) // { // int min n < m ? n : m; // int max n > m ? n : m; //…

PS网页版在线制作:云端设计让效率更上一层楼!

在当今的设计行业中&#xff0c;PS曾经被认为是不可替代的工具。然而&#xff0c;对于设计师&#xff0c;尤其是UI设计师来说&#xff0c;PS有点太复杂了。PS更新频率快&#xff0c;稳定性差&#xff0c;对计算机配置要求高。对于初学者来说&#xff0c;这显然是一个“负担”。…

MySQL里utf8mb4和utf8的区别

在MySQL中&#xff0c;utf8 和 utf8mb4 是两种常见的字符集&#xff0c;它们用于存储Unicode字符。尽管它们听起来相似&#xff0c;但存在一些关键的区别&#xff0c;这些区别对于支持某些特定字符&#xff08;如表情符号&#xff09;非常重要。 utf8 和 utf8mb4 的主要区别&a…

【SpringMVC】SpringMVC实现文件上传和下载

目录 1.文件上传 2.文件下载 1.文件上传 大概的图如下所示&#xff1a; 客户端&#xff1a; 文件上传就是把客户端的文件上传到服务端进行保存。在文件上传时文件和其他请求参数是在 请求体中进行传递。所以不支持 GET 类型请求。实现文件上传&#xff0c;需要提供一个上传的…

夜莺监控使用指南

夜莺监控使用指南 本文用于解决在部署和应用夜莺监控中遇到的一些问题以及官方文档缺失的某些步骤可能会遇到的坑。 安装过程 我使用是NightingaleCategrafPrometheus的架构。 Nightingale安装文档&#xff1a;https://flashcat.cloud/docs/content/flashcat-monitor/night…