首页 > 编程语言 >python: Text-to-Speech and Speech-to-Text

python: Text-to-Speech and Speech-to-Text

时间:2023-08-05 11:23:28浏览次数:33  
标签:engine word python Text Speech install pip import audio

 

"""
python.exe -m pip install --upgrade pip
pip install pyttsx3
pip install comtypes
pip install Pillow
pip install requests

pip install PocketSphinx
pip install SpeechRecognition

python: 3.11

"""


import sys
import os
import pyttsx3 as pyttsx
from win32com.client import Dispatch
from comtypes.client import CreateObject
#from comtypes.tools import SpeechLib
import speech_recognition as sr
engine = CreateObject("SAPI.SpVoice")
stream = CreateObject("SAPI.SpFileStream")
from comtypes.gen import SpeechLib


class ttsHepler(object):
    """

    """



    def ttsstrx(self, word:str):
        """
        文本转换为语音
        :param word:
        :return:
        """
        engine = pyttsx.init()
        engine.say(word)
        engine.runAndWait()


    def ttswin(self,word:str):
        """
        文本转换为语音
        :param word:
        :return:
        """
        #msg = "Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。"
        speaker = Dispatch("SAPI.SpVoice")
        speaker.Speak(word)
        del speaker

    def ttslib(self,word:str,dy=False):
        """
     文本转语音
        :param word:
        :return:
        """
        engine = CreateObject("SAPI.SpVoice",dynamic=dy)
        stream = CreateObject("SAPI.SpFileStream",dynamic=dy)
        from comtypes.gen import SpeechLib
        infile = 'fileText.txt'
        f = open(infile, 'r',encoding='utf-8')
        theText = f.read()
        f.close()

        outfile = 'demo_audio.wav'

        stream.Open(outfile, SpeechLib.SSFMCreateForWrite)
        engine.AudioOutputStream = stream
        engine.speak(theText)
        stream.close()

    def sttspeech(self):
        """
        语音转换为文本
        下载普通话识别文件
        下载路径:https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/Mandarin/
        解压之后,修改文件名称,cmusphinx-zh-cn-5.2 改为 zh-CN,
        zh_cn.cd_cont_5000文件夹改为acoustic-model,
        zh_cn.dic改为pronounciation-dictionary.dict,
        zh_cn.lm.bin改为language-model.lm.bin。
        然后移动zn-CN文件夹到python3\Lib\site-packages\speech_recognition\pocketsphinx-data下。
        :return:
        """
        r = sr.Recognizer()
        audio_file = 'demo_audio.wav'
        with sr.AudioFile(audio_file) as source:
            audio = r.record(source)
        try:
            print("文本内容:", r.recognize_sphinx(audio, language='zh-CN'))
            # 默认会识别为英文,如果要识别中文,需要下载普通话识别文件
        except Exception as e:
            print(e)

  

标签:engine,word,python,Text,Speech,install,pip,import,audio
From: https://www.cnblogs.com/geovindu/p/17607670.html

相关文章

  • python 网站爬取数据 避免SSLError
    importrequestsfrombs4importBeautifulSoup#发送HTTP请求获取网页内容url="https://example.com/"response=requests.get(url,verify=False)#避免SSLErrorhtml_content=response.text#使用BeautifulSoup解析网页内容soup=BeautifulSoup(html_content,"h......
  • python中文字体和负号显示问题修正
    frompylabimportmpl#设置显示中文字体mpl.rcParams["font.sans-serif"]=["SimHei"]#不显示fu负号问题plt.rcParams['axes.unicode_minus']=False以下内容chatgpt提供通过将plt.rcParams['axes.unicode_minus']设置为False,我们可以告诉matplotlib使用其他字符集来显示负号,通......
  • ubuntu安装python 3.7
    要在Ubuntu上安装Python3.7,可以按照以下步骤进行:打开终端。运行以下命令更新包列表:Copysudoaptupdate安装构建Python所需的依赖库:Copysudoaptinstallbuild-essentialzlib1g-devlibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-......
  • python实现Moaic数据增强
    数据增强python实现Moaic数据增强python实现Moaic数据增强Moaic数据增强:对四张图片进行拼接,获得一张新的图片,同时获得这张图片对应的标签框。主要原理:把4张图片,通过随机缩放、随机裁减、随机排布的方式......
  • Python通过解析html来实现简历系统
    把以上三个文件放到personData目录下即可。Admin.pyw#coding:utf-8fromPyQt4.QtGuiimport*fromPyQt4.QtCoreimport*importos,sys,time,jsonimportlxml.htmlreload(sys)sys.setdefaultencoding("utf-8")classmat(QDialog):def__init__(self):s......
  • 猿创征文|Python学习工具千千万,我心中的TOP10
    前言:大家好,我是是Dream呀,在我们平时的开发和生活中,每天都在使用、寻找、贡献、创作各类开发者工具,包括开源服务、付费软件、API等。好的工具可以极大帮助我们提升效率,服务业务。作为一名资深的Python博主,很多人都会问我平时使用什么工具,亦或者说有什么比较好的推荐工具呢?实话实......
  • python fitz模块报错RuntimeError: Directory ‘static/’ does not exist 解决方案
    报错fitz模块报错RuntimeError:Directory‘static/’doesnotexist原因使用Python处理PDF文档时,需要使用fitz模块。由于Python3.8以上版本与fitz有兼容问题,会出现以下错误信息:RuntimeError:Directory‘static/’doesnotexist解决办法卸载fitz模块,安装pymupdf模块......
  • Python全局变量
    关于Python跨文件全局变量作用域的问题可以定义一个Global_var.py将所有的全局变量放进去,在其他模块导入;重点:在其他模块中使用importGlobal_var导入时,在函数内部使用Global_var.变量名即可直接修改全局变量,无需global修饰;但是使用fromGlobal_varimport*导入模块时必须要在......
  • CTFer成长记录——CTF之Web专题·攻防世界-Web_python_template_injection
    一、题目链接https://adworld.xctf.org.cn/challenges/list二、解法步骤  python的flask模板注入的题思路比较固定,Jinja2模板引擎中,{{}}是变量包裹标识符。{{}}并不仅仅可以传递变量,还可以执行一些简单的表达式。1.猜测是否存在注入:直接在url后面加上{{config}}2.获取基本......
  • python中的exec()、eval()以及complie()
    1.eval函数函数的作用:计算指定表达式的值。也就是说它要执行的python代码只能是单个表达式(注意eval不支持任何形式的赋值操作),而不能是复杂的代码逻辑。eval(source,globals=None,locals=None,/)参数说明:source:必选参数,可以是字符串,也可以是一个任意的code(代码)对象实......