Pyttsx3+Windows语音合成不同的声音

2023-10-20 08:28

本文主要是介绍Pyttsx3+Windows语音合成不同的声音,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

"""
# ********************************************************************************
#           python如何实现文字转语音,并且解决发声生硬的问题。  # **********************************************************************************
"""# 在Python中,你可以使用不同的库来实现文字转语音的功能。以下是一些常用的库:
#
#   * `pyttsx3`:这是一个Python语音合成库,可以将文本转换为语音。
#   * `gTTS`:这是一个Google Text-to-Speech API的Python客户端,可以将文本转换为语音。
#   * `espeak`:这是一个开源的语音合成引擎,可以将文本转换为语音。
#
#
# 这些库都可以帮助你实现文字转语音的功能,但是它们的发音效果可能会有所不同。如果你想要解决发声生硬的问题,你可以尝试以下方法:
#
#   * 使用不同的语音合成引擎:不同的语音合成引擎可能会有不同的发音效果,你可以尝试使用不同的引擎来找到最适合你的发音效果。
#   * 调整语音合成引擎的参数:许多语音合成引擎都提供了参数调整的功能,你可以尝试调整这些参数来改善发音效果。
#   * 使用不同的语音合成库:不同的语音合成库可能会有不同的发音效果,你可以尝试使用不同的库来找到最适合你的发音效果。
如何支持多国语言:
首先windows先添加语音,方法如下:
电脑系统图标键,找到windows设置,或者设置, --时间与语言---点击添加语音--管理语言---添加语音 # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-MX_SABINA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_IT-IT_ELSA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_PL-PL_PAULINA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_PT-BR_MARIA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_DE-DE_HEDDA_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-HK_TRACY_11.0
# ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0"""
"""# *************************************************************************************************************
#                     python如何实现文字转语音,并且解决发声生硬的问题。                                       *********
# *************************************************************************************************************"""# 在Python中,你可以使用不同的库来实现文字转语音的功能。以下是一些常用的库:
#
#   * `pyttsx3`:这是一个Python语音合成库,可以将文本转换为语音。
#   * `gTTS`:这是一个Google Text-to-Speech API的Python客户端,可以将文本转换为语音。
#   * `espeak`:这是一个开源的语音合成引擎,可以将文本转换为语音。
#
#
# 这些库都可以帮助你实现文字转语音的功能,但是它们的发音效果可能会有所不同。如果你想要解决发声生硬的问题,你可以尝试以下方法:
#
#   * 使用不同的语音合成引擎:不同的语音合成引擎可能会有不同的发音效果,你可以尝试使用不同的引擎来找到最适合你的发音效果。
#   * 调整语音合成引擎的参数:许多语音合成引擎都提供了参数调整的功能,你可以尝试调整这些参数来改善发音效果。
#   * 使用不同的语音合成库:不同的语音合成库可能会有不同的发音效果,你可以尝试使用不同的库来找到最适合你的发音效果。
"""# *************************************************************************************************************
#                     python      pyttsx3语音合成 pyttsx3如何让发音显得更自然一点,默认的有一些僵硬。            *********
# *************************************************************************************************************
"""# 在`pyttsx3`库中,你可以使用`setProperty`方法来设置语音合成引擎的参数,包括语速、音调和音量等。以下是一些常用的方法:
#
#   * `setProperty(name, value)`:设置语音合成引擎的参数。`name`是参数的名称,`value`是参数的值。
#   * `setProperty('rate', rate)`:设置语音合成引擎的语速。`rate`是语速的值,范围是0.0到10.0,其中0.0表示最慢,10.0表示最快。
#   * `setProperty('volume', volume)`:设置语音合成引擎的音量。`volume`是音量的值,范围是0.0到1.0,其中0.0表示无声,1.0表示最大音量。
#   * `setProperty('pitch', pitch)`:设置语音合成引擎的音调。`pitch`是音调的值,范围是0.0到1.0,其中0.0表示最低音调,1.0表示最高音调。
#
# 你可以使用这些方法来设置语音合成引擎的参数,以改善发音效果。例如,你可以使用以下代码来设置语音合成引擎的语速为1.0(正常语速),音量为1.0(最大音量),音调为1.0(最高音调):
#
# ```python
# import pyttsx3
#
# engine = pyttsx3.init()
# engine.setProperty('rate', 1.0)
# engine.setProperty('volume', 1.0)
# engine.setProperty('pitch', 1.0)
# engine.say('Hello, world!')
# engine.runAndWait()
# ```
#
# 在这个例子中,我们使用`setProperty`方法将语音合成引擎的语速、音量和音调设置为正常值,然后将文本'Hello, world!'转换为语音,并播放出来。
#
# 你也可以尝试调整这些参数的值,以找到最适合你的发音效果。
# 例如,你可以尝试将语速设置为0.5(慢速),音量设置为0.5(小音量),音调设置为0.5(低音调),以使发音显得更自然。
"""
# *************************************************************************************************************
#                     python      pyttsx3 保存为文件                       。            *********
# *************************************************************************************************************
"""
# 在`pyttsx3`库中,你可以使用`saveToWaveFile`方法将语音保存为WAV文件。以下是一个例子:
#
# ```python
# import pyttsx3
#
# engine = pyttsx3.init()
# engine.setProperty('rate', 1.0)
# engine.setProperty('volume', 1.0)
# engine.setProperty('pitch', 1.0)
#
# text = 'Hello, world!'
# engine.say(text)
# engine.runAndWait()
#
# engine.saveToWaveFile('output.wav')
# ```
#
# 在这个例子中,我们首先使用`init`方法初始化语音合成引擎,然后使用`setProperty`方法将语速、音量和音调设置为正常值。然后,我们使用`say`方法将文本转换为语音,并使用`runAndWait`方法播放出来。最后,我们使用`saveToWaveFile`方法将语音保存为名为`output.wav`的WAV文件。
#
# 注意,你需要将`output.wav`替换为你想要保存的文件的路径和名称。
"""# *************************************************************************************************************
#                     python      使用pydub库将wave文件转换为mp3文件                      。            *********
# *************************************************************************************************************
"""
# # 使用pydub库将wave文件转换为mp3文件
# audio = AudioSegment.from_wav('output.wav')
# audio.export('output.mp3', format='mp3')"""
# *************************************************************************************************************
#                     python     # 设置发音人(这里设置为电脑默认发音人)                      。            *********voices如下,可以选择自己喜欢的声音。
com.apple.speech.synthesis.voice.Alex
com.apple.speech.synthesis.voice.alice.premium
com.apple.speech.synthesis.voice.alva
com.apple.speech.synthesis.voice.amelie
com.apple.speech.synthesis.voice.anna
com.apple.speech.synthesis.voice.carmit
com.apple.speech.synthesis.voice.damayanti
com.apple.speech.synthesis.voice.daniel
com.apple.speech.synthesis.voice.diego
com.apple.speech.synthesis.voice.ellen
com.apple.speech.synthesis.voice.fiona
com.apple.speech.synthesis.voice.Fred
com.apple.speech.synthesis.voice.ioana
com.apple.speech.synthesis.voice.joana
com.apple.speech.synthesis.voice.jorge
com.apple.speech.synthesis.voice.juan
com.apple.speech.synthesis.voice.kanya
com.apple.speech.synthesis.voice.karen
com.apple.speech.synthesis.voice.kyoko
com.apple.speech.synthesis.voice.laura
com.apple.speech.synthesis.voice.lekha
com.apple.speech.synthesis.voice.luca
com.apple.speech.synthesis.voice.luciana
com.apple.speech.synthesis.voice.maged
com.apple.speech.synthesis.voice.mariska
com.apple.speech.synthesis.voice.meijia
com.apple.speech.synthesis.voice.melina
com.apple.speech.synthesis.voice.milena
com.apple.speech.synthesis.voice.moira
com.apple.speech.synthesis.voice.monica
com.apple.speech.synthesis.voice.nora
com.apple.speech.synthesis.voice.paulina
com.apple.speech.synthesis.voice.rishi
com.apple.speech.synthesis.voice.samantha
com.apple.speech.synthesis.voice.sara
com.apple.speech.synthesis.voice.satu
com.apple.speech.synthesis.voice.sinji
com.apple.speech.synthesis.voice.tessa
com.apple.speech.synthesis.voice.thomas
com.apple.speech.synthesis.voice.tingting.premium
com.apple.speech.synthesis.voice.veena
com.apple.speech.synthesis.voice.Victoria
com.apple.speech.synthesis.voice.xander
com.apple.speech.synthesis.voice.yelda
com.apple.speech.synthesis.voice.yuna
com.apple.speech.synthesis.voice.yuri
com.apple.speech.synthesis.voice.zosia
com.apple.speech.synthesis.voice.zuzanapyttsx3支持多种语音合成引擎,包括:
MAC    com.apple.speech.synthesis.voice.Alex
WINDOWS   Microsoft Speech API(SAPI) /Microsoft David Desktop (TTS Engine)
Google Text-to-Speech
Amazon Polly
espeak-ng    pip install espeak-ng
eSpeak
Festival
MaryTTS
Pico TTS
MyTTS
iFLYTEK TTS
其中,Microsoft Speech API是Windows系统默认的语音合成引擎,
而Google Text-to-Speech和Amazon Polly需要联网才能使用。其他语音合成引擎可能需要安装额外的库或软件。如:
From source:
$ git clone https://github.com/TensorSpeech/TensorFlowTTS.git
$ cd TensorFlowTTS
$ pip install .If you want to upgrade the repository and its dependencies:
$ git pull
$ pip install --upgrade .
# *************************************************************************************************************
"""
# 这段代码是使用Python的pyttsx3库来设置发音人的。在这个例子中,发音人被设置为电脑默认的Alex。
# 这个设置会告诉pyttsx3库在发音时应该使用哪个语音合成引擎。
#
# ```python
# import pyttsx3
#
# engine = pyttsx3.init()
# engine.setProperty('voice', 'com.apple.speech.synthesis.voice.Alex')
# ```
#
# 在这个代码中,首先导入了pyttsx3库,然后初始化了一个新的语音合成引擎。然后,使用setProperty方法来设置发音人。最后,这个新的语音合成引擎就可以用来发音了。
#
# 注意,这个设置可能只在你运行这段代码的电脑上有效。
# 如果你在另一台电脑上运行这段代码,你可能需要设置不同的发音人。# 要将wav文件中的机器声音转换成人声,可以使用深度学习模型,例如WaveNet。以下是使用Python和TensorFlow实现的步骤:
#
# 安装所需库:
#
# bash
# 复制代码
# pip install tensorflow - gpu == 2.6
# pip install librosa
#
# 下载预训练的WaveNet模型:
#
# bash
# 复制代码
# wget
# https: // storage.googleapis.com / download.tensorflow.org / models / wavenet_vocoder / wavenet_vocoder.zip
# unzip
# wavenet_vocoder.zip
#
# 将音频文件转换为适合WaveNet输入的格式:
#
# python
# 复制代码
# import librosa
# import numpy as np
#
#
# def preprocess_audio(file_path):
#     y, sr = librosa.load(file_path)
#     input_length = 8000
#     if len(y) > input_length:
#         y = y[:input_length]
#     else:
#         y = np.pad(y, (0, max(0, input_length - len(y))), 'constant')
#     return y, sr
#
#
# input_audio, sample_rate = preprocess_audio('input.wav')
#
# 使用WaveNet模型进行转换:
#
# python
# 复制代码
# import tensorflow as tf
# from wavenet_vocoder import WaveNetVocoder
#
#
# def convert_audio(input_audio, sample_rate):
#     vocoder = WaveNetVocoder()
#     output_audio = vocoder.infer(input_audio, sample_rate)
#     return output_audio
#
#
# output_audio = convert_audio(input_audio, sample_rate)
#
# 保存转换后的音频文件:
#
# python
# 复制代码
# import soundfile as sf
# sf.write('output.wav', output_audio, sample_rate)
#
# 这样,你就可以将wav文件中的机器声音转换成人声了。注意,这个示例仅适用于简单的音频转换任务,对于更复杂的场景,可能需要使用更高级的模型和方法。

案例程序:"""* `pyttsx3`:这是一个Python语音合成库,可以将文本转换为语音。pip install pyttsx3使用`pyaudio`或`sounddevice`库来播放音频pip install pyaudio
sapi5,即Microsoft Speech API 5,是微软发布的一个文本转语音(Text-to-Speech)引擎。
它内置在Windows系统中,例如Windows XP内置了TTS语音引擎SAPI5.1,Vista、Server 2008内置SAPI5.3,Win7内置SAPI5.4,无需额外安装。pyttsx3是一个文本到语音转换的Python库,它支持多种TTS引擎包括SAPI5、NSSS(NSSpeechSynthesizer)、espeak等。
通过pyttsx3的使用,我们可以方便地实现文字转语音的功能。例如,首先需要安装pyttsx3和pywin32库,然后使用以下代码即可将文字转化为语音:
"""import pyttsx3
import pyaudio# 初始化语音合成引擎engine = pyttsx3.init()
# mac
# engine.setProperty('voice', 'com.apple.speech.synthesis.voice.Alex')
# Microsoft David Desktop (TTS Engine)  windows
# engine.setProperty('voice', 'Microsoft David Desktop (TTS Engine)')
# engine.setProperty('voice', 'com.apple.speech.synthesis.voice.sinji')
with open('tts_data_zh_CN.txt', 'r', encoding='utf-8') as f:text = f.read()
engine.setProperty('language', 'ja')
engine.setProperty('rate', 150)
engine.setProperty('volume', 0.5)
engine.setProperty('pitch', 0.0)
engine.setProperty('emphasis', 50)  # 设置强调程度为50
engine.setProperty('spell', True)
# engine.setProperty('language', 'en')
voices = engine.getProperty('voices')
# for voice in voices:
#     print ('id = {} \nname = {} \n'.format(voice.id, voice.name))
# #     engine.setProperty('voice', voices[1].id)  #设置发音人
engine.setProperty('voice', 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0')
engine.say(text)
engine.runAndWait()for voice in voices:print("---" * 10, voice.id)
#     engine.save_to_file(text=text, filename='output112.wav')
#
#     engine.setProperty('voice', voice.id)
#     # engine.setProperty('voice', "com.apple.speech.synthesis.voice.sin-ji")
#     engine.say("以官网云教学平台演示为例,首先我们可以登录到大尧科技的官网,点击产品中心就可以看到我们的云教学平台:Hello !")
#     engine.runAndWait()
#     engine.stop()珍惜

珍惜成果,拿走请留香!!

珍惜成果,拿走请留香!!

珍惜成果,拿走请留香!!

这篇关于Pyttsx3+Windows语音合成不同的声音的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/245900

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u