• Python(黄金时代)—— 让文字来说话


    介绍

    在当前时代,文字与语音的转换已经成为一种必不可少的需求。无论是语音助手、语音聊天机器人还是有声书籍等等,文字到语音的转换技术正在发挥着重要的作用。而在Python编程语言中,pyttsx3库为我们提供了一个简便而强大的文字朗读解决方案。

    什么是pyttsx3库?

    • pyttsx3是Python提供的一个文字转语音(Text to Speech)库。 
    • 它基于Microsoft的语音技术,并提供了简单而灵活的API,允许我们将文字转换成自然流畅的语音输出。

    都有些什么功能?

    • 朗读单词或句子:利用pyttsx3库,我们可以轻松地让Python朗读出我们指定的单词或句子。  

    • 调整语速和音量pyttsx3库允许我们根据需要调整朗读的语速和音量,提供更加个性化的语音输出。 

    • 改变语音的性别和语言:通过设置不同的语音引擎和语言参数,我们可以改变语音的性别和使用的语言,实现灵活多样的朗读效果。

    代码操作

    安装

    pip install pyttsx3

    简单示例

      1. import pyttsx3
      2. # 创建一个Engine对象
      3. engine = pyttsx3.init()
      4. # 朗读一段文字
      5. engine.say("你好,欢迎关注 程序猿知秋")
      6. # 等待朗读完成
      7. engine.runAndWait()

    运行上述代码,你将会听到一段朗读出来的文字!!!

    其它功能

    调整语速和音量

    1. import pyttsx3
    2. # 创建一个Engine对象
    3. engine = pyttsx3.init()
    4. # 设置语速和音量
    5. engine.setProperty('rate', 150) # 语速范围一般在50-300之间,默认为200
    6. engine.setProperty('volume', 0.7) # 音量范围在0.0-1.0之间,默认为1.0
    7. # 朗读一段文字
    8. engine.say("你好,欢迎关注 程序猿知秋")
    9. # 等待朗读完成
    10. engine.runAndWait()
    注:设置语速和音量的代码 要放到 朗读文字设置之前

    改变语音的性别和语言

    1. import pyttsx3
    2. # 创建一个Engine对象
    3. engine = pyttsx3.init()
    4. # 获取所有可用的voices列表
    5. voices = engine.getProperty('voices')
    6. for v in voices:
    7. print("ID:", v.id)
    8. print("Name:", v.name)
    9. print("Languages:", v.languages)
    10. # 设置语音引擎
    11. engine.setProperty('voice', voices[0].id) # 根据voices列表中的索引来选择语音引擎
    12. # 设置语言 (该处不指定,则采用默认的即可)
    13. engine.setProperty('language', 'zh') # 指定语言为中文 en是英文
    14. # 朗读一段文字
    15. engine.say("hello,你好,欢迎关注 程序猿知秋")
    16. # 等待朗读完成
    17. engine.runAndWait()

    注:

    language的设置:对于常见的语言,如果不设置语言属性,通常会使用默认语言进行文本到语音的转换。某些引擎和API可能只支持特定语言的语音,因此通过设置语言属性,可以过滤掉不需要的语音选项

    可用的语言引擎:取决于你的操作系统和已安装的语音引擎。以上示例中使用的是Windows系统上的Microsoft David Desktop语音引擎。如果你使用的是其他操作系统或引擎,则需要根据自己的情况进行相应的调整。

    总结

    通过本文,我们在Python中探索了pyttsx3库的各种功能,并提供了相应的演示代码。我们学习了文字朗读的基础用法,调整了语速和音量,以及改变了语音的性别和语言,实现了个性化的朗读效果。

    程序猿与投资生活实录已改名为  程序猿知秋,WX 公众号同款,欢迎关注!! 

  • 相关阅读:
    【vue2.0】
    第五章第三节:数和二叉树的应用(二叉排序树和哈夫曼树及哈夫曼编码)
    Pytorch 分类网络训练方法(Resnet152为例)
    Webserver解决segmentation fault(core dump)段错问问题
    IPWorks 2022 Python Edition Crack
    机器学习中的数学原理——最小二乘法
    【使用 BERT 的问答系统】第 2 章 :用于自然语言处理的神经网络
    APP备案您清楚了吗?
    defineProperty 和 proxy 的区别
    java基础10题
  • 原文地址:https://blog.csdn.net/qq_25702235/article/details/133984350