如何用Python让你的电脑说话

2023-11-09

如何用Python让你的电脑说话 你成为亿万花花公子的第一步

如果你是像《钢铁侠》这样的电影的粉丝,你可能已经幻想过得到你自己的贾维斯。那么,在这篇文章中,我将告诉你如何开始制作你自己的电脑助手。我们将通过一个小的编程和一些聪明的python包在引擎盖下进行数据科学。

现在,制作像超级智能人工智能这样复杂的东西是很难的,对于我来说,在一篇文章中甚至很可能在一般情况下都很难做到。然而,我们可以做的是把这个问题分解成更小的部分,使问题看起来更容易。这是你在每一个项目中都应该做的事情,这样就不会一下子被其所有的复杂性所困住了。

从我对这个问题的简单思考来看,我相信我们可以把一个超级智能的人工智能助手分成四个主要部分。

文本到语音(以获得回应) 语音转文字(用于询问事情) 一些计算,以了解我们的问题并创建一个响应 将回应变成现实世界中的行动 在今天的文章中,我将专注于计算机助手的文本到语音方面,让我们的计算机与我们交谈。如果一切顺利的话,我将在今后的文章中继续发展,使我们的助手变得更加复杂和有用。

找到一个文本到语音库 现在,用python做这样的事情有一个巨大的好处,那就是我们有大量的库可以使用,以快速完成事情。毕竟,如果我们从头开始开发其中的每一个部分,我们会在这里呆很久,以至于我们永远不会完成任何事情。让我们站在巨人的肩膀上,使用python软件包。

对于文本到语音来说,有几个Python包在人群中脱颖而出。

谷歌文本转语音(gTTs),以及 pyttsx3(我不知道那到底代表什么)。 谷歌文本转语音是一个Python库,用于连接谷歌翻译的文本转语音API。它具有谷歌自己的文本到语音应用程序的性能,但需要互联网连接才能使用。

另一方面,pyttsx3是一个文本到语音的转换库,它寻找预装在你的平台上的文本到语音引擎并使用它们。因此,它可以离线工作。

以下是它在主要操作系统上使用的文本转语音引擎。

Windows上的SAPI5 2. MacOSX上的NSSpeechSynthesizer

3.其他所有平台上的espeak

看看这两个,我不希望我的助手依赖谷歌或在线连接来工作。我更愿意使用pyttsx3,让一切都在我自己的机器上运行。

设置项目 现在,在我们开始运行一切之前,让我们设置我们的项目。

我们将通过文本编辑器和终端来完成一切。如果你不知道这意味着什么,那么我向人们推荐的文本编辑器是vscode,而终端通常内置在你的文本编辑器中(如vscode),或者是你电脑上的一个叫做 "终端 "或 "cmd "的程序。

现在,我想让你打开你的终端,改变目录到你保存项目的地方,例如,用

cd ~/projects

接下来,我们将需要创建一个目录来存储我们的项目。这完全取决于你,但我希望我的助手叫罗伯特。因此,我将创建一个名为 "robert "的新目录,然后用以下方式进入该目录

mkdir robert
cd robert

你可以把这个名字改成你喜欢的样子,比如说Brandy或者Kumar之类的。

接下来,我们需要让python启动并运行。为此,我们将需要安装Python 3。如果你没有安装,请参阅https://www.python.org/,了解安装说明。我们还需要创建一个Python虚拟环境。如果你想了解更多这方面的信息,请看这里,我最近的一篇文章。

假设你已经安装了Python,你可以在终端用以下方法验证

python3 --version

现在你应该能够在你的robert目录下创建你的python虚拟环境了。

python3 -m venv venv

注意,如果你安装的python的版本是python,python3.7或者python3.9或者其他的,那么就使用这个版本。

然后你应该能够用以下方法激活你的虚拟环境。

(在MacOS和Linux上)

source venv/bin/activate 或 (Windows)

venv/Scripts/activate

现在我们需要安装我们需要的软件包。为了做到这一点,我们将创建一个requirements.txt文件。进入你最喜欢的文本编辑器,例如vscode,或者,如果你很冒险的话,vim,打开你的 "robert "文件夹,现在创建这个文件。

对于我们的项目,到目前为止,我们只需要pyttsx3。很简单。让我们现在把它添加到我们的requirements.txt文件中,如下所示

接下来,让我们用pip来安装我们的需求

pip install -r requirements.txt

使用pyttsx3

现在一切都安装好了,让我们开始使用pyttsx3。为了了解该怎么做,我查看了这里的文档。

然后,你可以通过创建一个名为speech.py的文件并添加以下代码来制作一个漂亮的例子。

import pyttsx3

engine = pyttsx3.init()

voice_num = 2
text_to_say = "Hello World! I am Robert!"

voices = engine.getProperty('voices')
engine.setProperty('voice', voices[voice_num].id)

engine.say(text_to_say)
engine.runAndWait()

我们首先导入pyttsx3以加载其所有的类和变量。然后我们初始化语音引擎,设置一个我们想要的声音,然后是我们想要说的文字。最后我们使用engine.runAndWait()来说话。

然后我们可以在终端用下面的命令运行这个文件。

python speech.py

玩一玩这个,改变text_to_say变量。你应该能说出任何你喜欢的东西。

酷!调整声音和速度

现在我们有了一些工作,让我们给我们的助手一些调整。Pyttsx3让我们调整声音和速度。

import pyttsx3

engine = pyttsx3.init()

# change voice

# getting details of current voice
voices = engine.getProperty('voices')      

for i in range(len(voices)):
    engine.setProperty('voice', voices[i].id)
    # say something
    engine.say("Pick me, pick me! My voice is number " + str(i))
    engine.runAndWait()

在上面的例子中,你可以改变声音_num到一个不同的数字来获得一个新的声音。从我的测试来看,这似乎取决于平台(可能取决于你的平台有SAPI5,NSSpeechSynthesizer或espeak)。

我创建了这个怪物般的文件(当很多机器人的声音用奇怪的口音和你说话时,你就会明白为什么),以帮助你决定什么声音最适合你。一旦你找到了你喜欢的声音号码,把这个号码换成在voice_num变量中找到的号码。

接下来的步骤

恭喜你达到了终点。如果你有任何问题或只是想打招呼,请在下面发表。

如果你想进一步阅读,我建议你查看下面的链接,并在即将到来的文章中获得先机。

https://www.geeksforgeeks.org/python-text-to-speech-by-using-pyttsx3/

https://realpython.com/python-speech-recognition/

对于我的下一篇文章,我将专注于语音转文字,这样我们的助手就可以对我们的命令作出回应

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用Python让你的电脑说话 的相关文章

  • HTML+CSS+JavaScript入门教程(万字)

    前言 作为一名后端开发人员 开发过程中 必不可少的与前端进行对接 因此尽管是后端开发者 也需要一定的前端知识 因此写下HTML CSS JavaScript入门知识 着重介绍了JavaScript 方便自己复习 也各位小伙伴参考 一 HTM
  • 如何营造办公室的友好氛围

    办公室有时就是一个小社会 人多嘴杂 面对各种利益冲突 你必须找准角色定位 既不能孤芳自赏 又不能表现过度 如何迅速赢得大多数人的好感 尽快融入其中 营造良好的人际关系呢 办公室5大忌 1 切忌拉小圈子 互散小道消息 办公室内切忌私自拉帮结派
  • C语言关键字之 volatile

    本文记录了C语言中 Volatile 关键字的作用 目录 变量使用 volatile 修饰 volatile 使用场景 多线程下的volatile 变量使用 volatile 修饰 告诉编译器 该变量随时会发生变化 每次使用该变量直接到内存

随机推荐

  • java 带参数转发_Nginx 根据URL带的参数转发的实现

    使用场景 需要根据截取url动态配置跳转路径 常见于访问内网不固定ip地址的文件图片 请求地址 http 11 19 1 212 82 bimg4 32 52 62 42 222 downloadfile filename loc 12 d
  • WPS Office AI实战:Word写作如有“神”助

    打开电脑 基本上你就会与文档打交道 是时候升级处理文档的方式了 WPS AI 的出现 给了文档处理提供了新的范式 生成文档 根据提示词生成新内容 文档分析 快速了解文档核心要点 节省阅读时间 根据你感兴趣的内容 推荐相关问题 使用WPS A
  • 【Postman】请求错误解决

    author 咔咔 wechat fangkangfk 在我们不能正常请求的时候考虑的几个问题 防火墙问题 有些防火墙可能被配置为阻止非浏览器连接 在这种情况下 应该与网络管理员联系 以便Postman可以正确工作 代理配置问题 如果我们使
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627

    摘 要 本论文主要论述了如何使用JAVA语言开发一个高校选课系统 本系统将严格按照软件开发流程进行各个阶段的工作 采用B S架构 面向对象编程思想进行项目开发 在引言中 作者将论述高校选课系统的当前背景以及系统开发的目的 后续章节将严格按照
  • linux查看ipv6 dns,云解析DNS IPv6

    转自 什么是IPV6 答 IPv6是英文 Internet Protocol Version 6 互联网协议第6版 的缩写 是互联网工程任务组 IETF 设计的用于替代IPv4的下一代IP协议 由于IPv4在网络地址资源有限 严重制约了互联
  • python: extend (扩展) 与 append (追加) 的差别

    http justjavac iteye com blog 1827915 gt gt gt li a b c gt gt gt li extend d e f gt gt gt li a b c d e f gt gt gt len li
  • 新版eclipse编写Android 时经常报的错误 -support-v7

    一 和以往一样新建完一个Android项目之后 会报android support v4 或者V7找不到的错误 这是因为这两个包在另一个附带的项目 android support v7 appcompat 下 解决办法 右键你刚才建 的项目
  • OpenCV3 VideoCapture出错Connection to tcp://192.168.15.11:554?timeout=0 failed: No route

    tcp 0x2261180 Connection to tcp 192 168 15 11 554 timeout 0 failed No route to host joinus test 7689 GStreamer CRITICAL
  • Harbor主从

    一 harbor主从方案 1 主备 简单 主挂了切到备Harbor 同一时间只有一台提供服务 适合少量镜像下载 2 双主复制 双向配置复制 两台同时提供服务 前面增加负载均衡器 3 一主多从 多个从同步主 适合多地区业务 大量镜像下载需求
  • sqli-lab学习笔记(学习笔记)(21-30)

    打完21 30之后的后记 后来发现 网上所有就是讲解sqli的 到后面都没有用查有多少字段数的order by这个语句 几乎都没有提到过 我自己也尝试在后面的变形中加入加入进去但是不知道为什么老是出错 现在我想到的办法就是 比如28a关 语
  • 游戏开发Unity杂项知识系列:Microsoft Visual C++ 2015 安装失败 0x80070666-已安装这个产品的另一个版本

    参考 https blog csdn net qq 44781435 article details 108629616 总结 系统有了一个更高版本的vc 但是与所需不匹配 必须先卸载高版本的然后再安装目标版本
  • Python Selenium搭建UI自动化测试框架

    自动化测试是软件测试中非常重要的一部分 可以提高测试效率和测试覆盖率 在UI自动化测试中 Selenium是非常流行的工具 本文将介绍如何使用Python和Selenium搭建UI自动化测试框架 一 环境准备 在开始搭建UI自动化测试框架之
  • JavaScript资源大全中文版(Awesome最新版)

    Awesome系列的JavaScript资源整理 awesome javascript是sorrycc发起维护的 JS 资源列表 内容包括 包管理器 加载器 测试框架 运行器 QA MVC框架和库 模板引擎 数据可视化 时间轴 编辑器等 前
  • Elasticsearch安装IK分词器、配置自定义分词词库

    一 分词简介 1 单字分词 2 二分法分词 3 词库分词 二 配置IK中文分词器 三 配置自定义分词拓展词库 一 分词简介 在Elasticsearch中 假设搜索条件是 华为手机平板电脑 要求是只要满足了其中任意一个词语组合的数据都要查询
  • 自学软件测试6个月,找到了月薪8.5K的工作,多亏了这套学习方法

    8 5K的薪资也许对csdn的各位大佬来说并不算什么 但是对于我这种曾经在工厂 每月工资才4000左右的人来说 已经是巨大的改变了 文中附我的学习心得及学习资料 其实我在很早就对编程感兴趣 只是一直缺乏学习的动力 刚好在去年疫情期间 厂里停
  • vue + ts 项目中watch的用法

    要使vue支持ts写法 我们需要用到vue property decorator 这个组件完全依赖于vue class componet 首先安装 npm i D vue property decorator Watch path stri
  • Tkinter PhotoImage 踩坑记录

    1 直接使用PhotoImage file xxxx 报错 tkinter TclError couldn t recognize data in image file xxxxx png 原因 PhotoImage支持的图片格式有限 解决
  • MySQL视图、索引、备份与恢复、执行计划

    目录 一 前言 1 导读 2 学习的好处 二 视图 1 什么是视图 2 视图与数据表的区别 3 使用视图的优点 4 视图的语法 1 创建视图 CREATE VIEW 2 查询视图数据 3 更新视图数据 4 修改视图定义 ALTER VIEW
  • 超强实用:中国各地特产风味大搜捕!

    http www lotour com snapshot 2006 2 6 snapshot 32012 shtml 来源 中国交通旅游图册 北京特产风味 北京集全国风味佳肴 工艺美术和民族用品于一城 宫廷菜点 烤鸭 果脯 酥糖 京绣 戏装
  • 如何用Python让你的电脑说话

    如何用Python让你的电脑说话 你成为亿万花花公子的第一步 如果你是像 钢铁侠 这样的电影的粉丝 你可能已经幻想过得到你自己的贾维斯 那么 在这篇文章中 我将告诉你如何开始制作你自己的电脑助手 我们将通过一个小的编程和一些聪明的pytho