首页 > 其他分享 >pyttsx3模块

pyttsx3模块

时间:2023-11-02 22:35:39浏览次数:36  
标签:engine pyttsx3 语音 text 合成 模块 voice

1、介绍

pyttsx3模块是python的一个第三方模块,作用是进行语音合成。

  • 无需请求api,本地合成,可以不受次数和字数限制
  • 技术相对成熟,应用广泛,使用方便

2、pyttsx3.speak函数

import pyttsx3
pyttsx3.speak('你指尖跃动的电光,是我此生不灭的信仰')
  • 这是该模块最简应用,调用speak函数时,会播放合成的语音
  • 播放过程是依赖原线程,播放完毕后继续执行
def speak(text):
    engine = init()
    engine.say(text)
    engine.runAndWait()

3、参考speak函数

import pyttsx3
def speak_text(text: str):
    # 创建语音合成对象
    engine = pyttsx3.init()
    # 合成并播放
    engine.say(text)
    # 阻塞,等待合成过程和播放过程
    engine.runAndWait()

speak_text('区区砂砾,不及我半分')
  • 自定义函数,相比原生的speak函数可以进行参数调试,乃至开线程处理
  • engine对象是prttsx3.engine.Engine类的对象

4、Engine类

def say(self, text, name=None):
  • text参数,str类型,作为合成语音的内容
  • 该方法将text参数的字符串合成语音,并且直接播放
  • 该方法调用后会直接执行其后的语句
def save_to_file(self, text, filename, name=None)
  • text参数,str类型,作为合成语音的内容
  • filename参数,str类型,表示合成结果输出的文件路径
  • 该方法是将text参数的字符串合成语音,保存到指定文件中。不会直接播放
  • 因此该方法调用后会直接执行其后的语句
def runAndWait(self):
  • 实际上,say和save_to_file方法都并不会实际执行,而是进行相关设置
  • 该方法才是开启运行以及阻塞,等待任务完成才继续向后执行
def setProperty(self, name, value)
  • 设置合成的相关属性
  • voice,选择声音。值可以是声音对应的id
  • rate,选择速率。int类型,表示每分钟多少单词
  • volume,语音量,float类型,范围从0.0-1.0
def getProperty(self, name)
  • 获取相关属性
  • name为voice时,获取到的是str类型,表示id
  • name为voices时,获取到的是list类型,其元素是pyttsx3.voice.Voice对象
  • name为rate时,获取到的是int类型,默认值200
  • name为volume时,获取到的是float类型,默认值1.0
def isBusy(self)
  • 是否繁忙,返回bool类型
def stop(self)
  • 停止合成语音和输出文件的线程

5、语音合成引擎

(1)查看本地支持的语音合成引擎

import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
    print(type(voice))
    print("Name: %s, ID: %s, Age: %s, Age: %s, Languages Known: %s" % (voice.name, voice.id, voice.age, voice.gender, voice.languages))
    
<class 'pyttsx3.voice.Voice'>
Name: Microsoft Huihui Desktop - Chinese (Simplified), ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0, Age: None, Age: None, Languages Known: []
<class 'pyttsx3.voice.Voice'>
Name: Microsoft Haruka Desktop - Japanese, ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0, Age: None, Age: None, Languages Known: []
<class 'pyttsx3.voice.Voice'>
Name: Microsoft Zira Desktop - English (United States), ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0, Age: None, Age: None, Languages Known: []
  • 这里显示本地支持三种语音合成引擎

(2)设置语音合成引擎与测试

engine.setProperty('voice', engine.getProperty('voices')[0].id)
  •  Huihui,支持中文、数字和英文,即使混杂也可以识别依序读取。数字是中文读音,十进制读法
  • Haruka,支持日语、数字和英文,中文会被跳过。数字是日语读音
  • Zira,支持数字和英文,中文会被跳过。数字是英语读音,单独的数字会作为十进制读法,而混杂过程中会逐位读出

 

标签:engine,pyttsx3,语音,text,合成,模块,voice
From: https://www.cnblogs.com/wd404/p/17806512.html

相关文章

  • angie vod_module 模块的问题
    上次我简单说过angie官方构建的nginx-vod-module有一些问题,经常测试实际上问题还是不小的主要问题声音处理会有问题同时缩略图似乎也有问题解决方法应该自己构建nginx-vod-module,同时编译为动态模块(包含debug最好)说明实际上通过日志我们也看出了不少警告信息,十实际上......
  • DC电源模块外壳材质对模块的影响有多少
    BOSHIDADC电源模块外壳材质对模块的影响有多少DC电源模块是一种常见的电子元件,被广泛应用于电子设备、通讯、计算机、医疗器械、制造业等领域,它的外壳材质对电源模块的性能和稳定性有直接的影响。本文将就DC电源模块外壳材质的不同对模块的影响作一简要介绍。首先,DC电源模块通......
  • DC电源模块外壳材质对模块的影响有多少
    BOSHIDADC电源模块外壳材质对模块的影响有多少DC电源模块是一种常见的电子元件,被广泛应用于电子设备、通讯、计算机、医疗器械、制造业等领域,它的外壳材质对电源模块的性能和稳定性有直接的影响。本文将就DC电源模块外壳材质的不同对模块的影响作一简要介绍。首先,DC电源模块通常......
  • 振弦传感器智能化:电子标签模块
    振弦传感器智能化:电子标签模块稳控科技研发并批量生产的振弦采集模块解决了传感器由模拟信号直接转变为数字信号的难题。近年来,振弦传感器为适应用户需求,不断迭代更新技术,使学习和使用成本非常低,且带来方便快捷的体验效果。传统传感器生产厂家专注于传感器的生产,技术实力一般,导致......
  • 新品发布:信驰达TI CC1352P7双频段多协议模块RF-TI1352P2,支持Matter over Thread
    近日,领先的无线物联网通信模块厂商深圳市信驰达科技推出了基于TICC1352P7为核心的双频段(Sub-1GHz和2.4GHz)多协议无线模块RF-TI1352P2。RF-TI1352P2模块除了集成负责应用逻辑的高性能48MHz ARMCortex-M4F主处理器与一个专用于负责射频核心的ARMCortex-M0处理器之外,还......
  • lsmod-查看内核模块信息
    lsmod-查看内核模块信息lsmod——显示已载入系统的模块lsmod其实就是listmodules的缩写,即列出所有模块.功能说明:显示已载入系统的模块。#lsmodModuleSizeUsedbyiptable_nat59230nf_nat226761iptable_nat第1......
  • 【python爬虫】80页md笔记,0基础到scrapy项目高手,第(3)篇,requests网络请求模块详解
    本文主要学习一下关于爬虫的相关前置知识和一些理论性的知识,通过本文我们能够知道什么是爬虫,都有那些分类,爬虫能干什么等,同时还会站在爬虫的角度复习一下http协议。完整版笔记直接地址:请移步这里共8章,37子模块,总计56668字requests模块本阶段本文主要学习requests这......
  • Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志
    【自定义logo】进入Allure的安装路径,找到config目录。在config目录下,找到allure.yml文件,并打开该文件。在allure.yml文件中,添加custom-logo-plugin选项。进入Allure的安装路径,找到plugins目录下的custom-logo-plugin目录。在custom-logo-plugin目录下,找到static目录,并将自己需要展......
  • 模块交付标准
    模块交付标准算下来已经工作了6年,其实是很漫长的时间了,一个小学的时间。有些关于工作上的转瞬即逝的想法,最好还是记录下来。例如自己经常设计、开发模块,是否应该有些标准?是否可能将标准量化?模块需有完整的代码,尽量做到:高内聚,低耦合完整的需求说明,包括背景和需求变更完整的......
  • python 模块导入赋值给变量
    一、假设有一个dangerous_code.py文件。二、导入模块赋值给变量dangerous_module=__import__('dangerous_code')三、执行模块中的delete_all函数(方法)删除内容danderous_module.delete_all()免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果......