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


    """
    # ********************************************************************************
    #           python如何实现文字转语音,并且解决发声生硬的问题。  # **********************************************************************************
    """
    
    # 在Python中,你可以使用不同的库来实现文字转语音的功能。以下是一些常用的库:
    #
    #   * `pyttsx3`:这是一个Python语音合成库,可以将文本转换为语音。
    #   * `gTTS`:这是一个Google Text-to-Speech API的Python客户端,可以将文本转换为语音。
    #   * `espeak`:这是一个开源的语音合成引擎,可以将文本转换为语音。
    #
    #
    # 这些库都可以帮助你实现文字转语音的功能,但是它们的发音效果可能会有所不同。如果你想要解决发声生硬的问题,你可以尝试以下方法:
    #
    #   * 使用不同的语音合成引擎:不同的语音合成引擎可能会有不同的发音效果,你可以尝试使用不同的引擎来找到最适合你的发音效果。
    #   * 调整语音合成引擎的参数:许多语音合成引擎都提供了参数调整的功能,你可以尝试调整这些参数来改善发音效果。
    #   * 使用不同的语音合成库:不同的语音合成库可能会有不同的发音效果,你可以尝试使用不同的库来找到最适合你的发音效果。
    1. 如何支持多国语言:
    2. 首先windows先添加语音,方法如下:
    3. 电脑系统图标键,找到windows设置,或者设置, --时间与语言---点击添加语音--管理语言---添加语音
    4. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
    5. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0
    6. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_DAVID_11.0
    7. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
    8. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0
    9. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-MX_SABINA_11.0
    10. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_FR-FR_HORTENSE_11.0
    11. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_IT-IT_ELSA_11.0
    12. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_JA-JP_HARUKA_11.0
    13. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_KO-KR_HEAMI_11.0
    14. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_PL-PL_PAULINA_11.0
    15. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_PT-BR_MARIA_11.0
    16. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_RU-RU_IRINA_11.0
    17. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_DE-DE_HEDDA_11.0
    18. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-HK_TRACY_11.0
    19. # ------------------------------ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-TW_HANHAN_11.0
    20. """
    1. """
    2. # *************************************************************************************************************
    3. # python如何实现文字转语音,并且解决发声生硬的问题。 *********
    4. # *************************************************************************************************************
    5. """
    6. # 在Python中,你可以使用不同的库来实现文字转语音的功能。以下是一些常用的库:
    7. #
    8. # * `pyttsx3`:这是一个Python语音合成库,可以将文本转换为语音。
    9. # * `gTTS`:这是一个Google Text-to-Speech API的Python客户端,可以将文本转换为语音。
    10. # * `espeak`:这是一个开源的语音合成引擎,可以将文本转换为语音。
    11. #
    12. #
    13. # 这些库都可以帮助你实现文字转语音的功能,但是它们的发音效果可能会有所不同。如果你想要解决发声生硬的问题,你可以尝试以下方法:
    14. #
    15. # * 使用不同的语音合成引擎:不同的语音合成引擎可能会有不同的发音效果,你可以尝试使用不同的引擎来找到最适合你的发音效果。
    16. # * 调整语音合成引擎的参数:许多语音合成引擎都提供了参数调整的功能,你可以尝试调整这些参数来改善发音效果。
    17. # * 使用不同的语音合成库:不同的语音合成库可能会有不同的发音效果,你可以尝试使用不同的库来找到最适合你的发音效果。
    18. """
    19. # *************************************************************************************************************
    20. # python pyttsx3语音合成 pyttsx3如何让发音显得更自然一点,默认的有一些僵硬。 *********
    21. # *************************************************************************************************************
    22. """
    23. # 在`pyttsx3`库中,你可以使用`setProperty`方法来设置语音合成引擎的参数,包括语速、音调和音量等。以下是一些常用的方法:
    24. #
    25. # * `setProperty(name, value)`:设置语音合成引擎的参数。`name`是参数的名称,`value`是参数的值。
    26. # * `setProperty('rate', rate)`:设置语音合成引擎的语速。`rate`是语速的值,范围是0.0到10.0,其中0.0表示最慢,10.0表示最快。
    27. # * `setProperty('volume', volume)`:设置语音合成引擎的音量。`volume`是音量的值,范围是0.0到1.0,其中0.0表示无声,1.0表示最大音量。
    28. # * `setProperty('pitch', pitch)`:设置语音合成引擎的音调。`pitch`是音调的值,范围是0.0到1.0,其中0.0表示最低音调,1.0表示最高音调。
    29. #
    30. # 你可以使用这些方法来设置语音合成引擎的参数,以改善发音效果。例如,你可以使用以下代码来设置语音合成引擎的语速为1.0(正常语速),音量为1.0(最大音量),音调为1.0(最高音调):
    31. #
    32. # ```python
    33. # import pyttsx3
    34. #
    35. # engine = pyttsx3.init()
    36. # engine.setProperty('rate', 1.0)
    37. # engine.setProperty('volume', 1.0)
    38. # engine.setProperty('pitch', 1.0)
    39. # engine.say('Hello, world!')
    40. # engine.runAndWait()
    41. # ```
    42. #
    43. # 在这个例子中,我们使用`setProperty`方法将语音合成引擎的语速、音量和音调设置为正常值,然后将文本'Hello, world!'转换为语音,并播放出来。
    44. #
    45. # 你也可以尝试调整这些参数的值,以找到最适合你的发音效果。
    46. # 例如,你可以尝试将语速设置为0.5(慢速),音量设置为0.5(小音量),音调设置为0.5(低音调),以使发音显得更自然。
    47. """
    48. # *************************************************************************************************************
    49. # python pyttsx3 保存为文件 。 *********
    50. # *************************************************************************************************************
    51. """
    52. # 在`pyttsx3`库中,你可以使用`saveToWaveFile`方法将语音保存为WAV文件。以下是一个例子:
    53. #
    54. # ```python
    55. # import pyttsx3
    56. #
    57. # engine = pyttsx3.init()
    58. # engine.setProperty('rate', 1.0)
    59. # engine.setProperty('volume', 1.0)
    60. # engine.setProperty('pitch', 1.0)
    61. #
    62. # text = 'Hello, world!'
    63. # engine.say(text)
    64. # engine.runAndWait()
    65. #
    66. # engine.saveToWaveFile('output.wav')
    67. # ```
    68. #
    69. # 在这个例子中,我们首先使用`init`方法初始化语音合成引擎,然后使用`setProperty`方法将语速、音量和音调设置为正常值。然后,我们使用`say`方法将文本转换为语音,并使用`runAndWait`方法播放出来。最后,我们使用`saveToWaveFile`方法将语音保存为名为`output.wav`的WAV文件。
    70. #
    71. # 注意,你需要将`output.wav`替换为你想要保存的文件的路径和名称。
    72. """
    73. # *************************************************************************************************************
    74. # python 使用pydub库将wave文件转换为mp3文件 。 *********
    75. # *************************************************************************************************************
    76. """
    77. # # 使用pydub库将wave文件转换为mp3文件
    78. # audio = AudioSegment.from_wav('output.wav')
    79. # audio.export('output.mp3', format='mp3')
    80. """
    81. # *************************************************************************************************************
    82. # python # 设置发音人(这里设置为电脑默认发音人) 。 *********
    83. voices如下,可以选择自己喜欢的声音。
    84. com.apple.speech.synthesis.voice.Alex
    85. com.apple.speech.synthesis.voice.alice.premium
    86. com.apple.speech.synthesis.voice.alva
    87. com.apple.speech.synthesis.voice.amelie
    88. com.apple.speech.synthesis.voice.anna
    89. com.apple.speech.synthesis.voice.carmit
    90. com.apple.speech.synthesis.voice.damayanti
    91. com.apple.speech.synthesis.voice.daniel
    92. com.apple.speech.synthesis.voice.diego
    93. com.apple.speech.synthesis.voice.ellen
    94. com.apple.speech.synthesis.voice.fiona
    95. com.apple.speech.synthesis.voice.Fred
    96. com.apple.speech.synthesis.voice.ioana
    97. com.apple.speech.synthesis.voice.joana
    98. com.apple.speech.synthesis.voice.jorge
    99. com.apple.speech.synthesis.voice.juan
    100. com.apple.speech.synthesis.voice.kanya
    101. com.apple.speech.synthesis.voice.karen
    102. com.apple.speech.synthesis.voice.kyoko
    103. com.apple.speech.synthesis.voice.laura
    104. com.apple.speech.synthesis.voice.lekha
    105. com.apple.speech.synthesis.voice.luca
    106. com.apple.speech.synthesis.voice.luciana
    107. com.apple.speech.synthesis.voice.maged
    108. com.apple.speech.synthesis.voice.mariska
    109. com.apple.speech.synthesis.voice.meijia
    110. com.apple.speech.synthesis.voice.melina
    111. com.apple.speech.synthesis.voice.milena
    112. com.apple.speech.synthesis.voice.moira
    113. com.apple.speech.synthesis.voice.monica
    114. com.apple.speech.synthesis.voice.nora
    115. com.apple.speech.synthesis.voice.paulina
    116. com.apple.speech.synthesis.voice.rishi
    117. com.apple.speech.synthesis.voice.samantha
    118. com.apple.speech.synthesis.voice.sara
    119. com.apple.speech.synthesis.voice.satu
    120. com.apple.speech.synthesis.voice.sinji
    121. com.apple.speech.synthesis.voice.tessa
    122. com.apple.speech.synthesis.voice.thomas
    123. com.apple.speech.synthesis.voice.tingting.premium
    124. com.apple.speech.synthesis.voice.veena
    125. com.apple.speech.synthesis.voice.Victoria
    126. com.apple.speech.synthesis.voice.xander
    127. com.apple.speech.synthesis.voice.yelda
    128. com.apple.speech.synthesis.voice.yuna
    129. com.apple.speech.synthesis.voice.yuri
    130. com.apple.speech.synthesis.voice.zosia
    131. com.apple.speech.synthesis.voice.zuzana
    132. pyttsx3支持多种语音合成引擎,包括:
    133. MAC com.apple.speech.synthesis.voice.Alex
    134. WINDOWS Microsoft Speech API(SAPI) /Microsoft David Desktop (TTS Engine)
    135. Google Text-to-Speech
    136. Amazon Polly
    137. espeak-ng pip install espeak-ng
    138. eSpeak
    139. Festival
    140. MaryTTS
    141. Pico TTS
    142. MyTTS
    143. iFLYTEK TTS
    144. 其中,Microsoft Speech API是Windows系统默认的语音合成引擎,
    145. 而Google Text-to-Speech和Amazon Polly需要联网才能使用。其他语音合成引擎可能需要安装额外的库或软件。
    146. 如:
    147. From source:
    148. $ git clone https://github.com/TensorSpeech/TensorFlowTTS.git
    149. $ cd TensorFlowTTS
    150. $ pip install .
    151. If you want to upgrade the repository and its dependencies:
    152. $ git pull
    153. $ pip install --upgrade .
    154. # *************************************************************************************************************
    155. """
    156. # 这段代码是使用Python的pyttsx3库来设置发音人的。在这个例子中,发音人被设置为电脑默认的Alex。
    157. # 这个设置会告诉pyttsx3库在发音时应该使用哪个语音合成引擎。
    158. #
    159. # ```python
    160. # import pyttsx3
    161. #
    162. # engine = pyttsx3.init()
    163. # engine.setProperty('voice', 'com.apple.speech.synthesis.voice.Alex')
    164. # ```
    165. #
    166. # 在这个代码中,首先导入了pyttsx3库,然后初始化了一个新的语音合成引擎。然后,使用setProperty方法来设置发音人。最后,这个新的语音合成引擎就可以用来发音了。
    167. #
    168. # 注意,这个设置可能只在你运行这段代码的电脑上有效。
    169. # 如果你在另一台电脑上运行这段代码,你可能需要设置不同的发音人。
    170. # 要将wav文件中的机器声音转换成人声,可以使用深度学习模型,例如WaveNet。以下是使用Python和TensorFlow实现的步骤:
    171. #
    172. # 安装所需库:
    173. #
    174. # bash
    175. # 复制代码
    176. # pip install tensorflow - gpu == 2.6
    177. # pip install librosa
    178. #
    179. # 下载预训练的WaveNet模型:
    180. #
    181. # bash
    182. # 复制代码
    183. # wget
    184. # https: // storage.googleapis.com / download.tensorflow.org / models / wavenet_vocoder / wavenet_vocoder.zip
    185. # unzip
    186. # wavenet_vocoder.zip
    187. #
    188. # 将音频文件转换为适合WaveNet输入的格式:
    189. #
    190. # python
    191. # 复制代码
    192. # import librosa
    193. # import numpy as np
    194. #
    195. #
    196. # def preprocess_audio(file_path):
    197. # y, sr = librosa.load(file_path)
    198. # input_length = 8000
    199. # if len(y) > input_length:
    200. # y = y[:input_length]
    201. # else:
    202. # y = np.pad(y, (0, max(0, input_length - len(y))), 'constant')
    203. # return y, sr
    204. #
    205. #
    206. # input_audio, sample_rate = preprocess_audio('input.wav')
    207. #
    208. # 使用WaveNet模型进行转换:
    209. #
    210. # python
    211. # 复制代码
    212. # import tensorflow as tf
    213. # from wavenet_vocoder import WaveNetVocoder
    214. #
    215. #
    216. # def convert_audio(input_audio, sample_rate):
    217. # vocoder = WaveNetVocoder()
    218. # output_audio = vocoder.infer(input_audio, sample_rate)
    219. # return output_audio
    220. #
    221. #
    222. # output_audio = convert_audio(input_audio, sample_rate)
    223. #
    224. # 保存转换后的音频文件:
    225. #
    226. # python
    227. # 复制代码
    228. # import soundfile as sf
    229. # sf.write('output.wav', output_audio, sample_rate)
    230. #
    231. # 这样,你就可以将wav文件中的机器声音转换成人声了。注意,这个示例仅适用于简单的音频转换任务,对于更复杂的场景,可能需要使用更高级的模型和方法。

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

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

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

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

  • 相关阅读:
    M1Mac开启x86_64命令行archlinux虚拟机的最佳实践(qemu)
    DOM节点介绍及获取节点的方式
    day071:网络编程(IP、端口、协议)、InetAddress类、UDP协议、TCP协议
    8.SpringMVC处理ajax请求
    32位二进制转浮点数
    Scratch3.0下载
    OpenAI官方吴达恩《ChatGPT Prompt Engineering 提示词工程师》(1)指南:提示LLM的原则
    【笔记】KMeans聚类算法
    java毕业设计电子产品专卖电商系统Mybatis+系统+数据库+调试部署
    2023年山东省职业院校技能竞赛“网络安全”项目竞赛样题
  • 原文地址:https://blog.csdn.net/revivec/article/details/133930835