zoukankan      html  css  js  c++  java
  • 十九、语音识别

    文本转换为语音
         使用pyttsx、SAPI两种方式可以将文本转化成语音。但是都是通过参数输入文本内容。使用SpeechLib可以从文本文件中获取输入,再将其转化为语言。

    使用 pyttsx 实现文本转换语音
      
     import pyttsx3 as pyttsx
     engine=pyttsx.init()
     engine.say('你好 pyttsx')
     engine.runAndWait()
     
    使用 SAPI 实现文本转换语音
    from win32com.client import Dispatch
    msg="你好 SAPI"
    speaker = Dispatch('SAPI.SpVoice')
    speaker.Speak(msg)
    del speaker
     
    使用 SpeechLib 实现文本转换语音
    #导入转化需要的对象和转化模块(个人理解)
    from comtypes.client import CreateObject
    from comtypes.gen import SpeechLib
    #创建转化对象和转化流
    engine=CreateObject('SAPI.SpVoice')
    stream=CreateObject('SAPI.SpFileStream')
    infile='demo.txt'
    outfile='demo_audio.wav'
    stream.Open(outfile,SpeechLib.SSFMCreateForWrite)
    engine.AudioOutputStream=stream
    f=open(infile,'r',encoding='utf-8')
    theText=f.read()
    f.close()
    engine.speak(theText)
    stream.close()

    语音转换为文本
      PocketSphinx 是一个用于语音转换文本的开源 API。它是一个轻量级的语音识别引擎,尽管在桌面端也能很好地工作,它还专门为手机和移动设备做过调优
    import speech_recognition as sr
    audio_file='demo_audio.wav'
    r=sr.Recognizer()#生成转发对象
    #打开语音
    with sr.AudioFile(audio_file) as source:
    #转化
    audio =r.record(source)
    try:
    #转化结果
    print('文本内容:',r.recognize_sphinx(audio,language="zh-CN"))
    #print('文本内容:',r.recognize_sphinx(audio))
    except Exception as e:
    print(e)



  • 相关阅读:
    解决方法 svn checkout 更改用户名密码/断网续传
    解决方法 cannot be resolved as a type
    解决方法 Syntax error on token "enum", invalid Expression
    使用笔记 Sublime text 持更
    解决方法 cvs或svn上下载的新项目无build path
    解决方法 卸载jdk以及重新安装jdk
    配置笔记 eclipse, jdk, tomcat, maven, mysql, alt+/
    ubantu配置java环境变量
    写给自己的!
    数据设计模式
  • 原文地址:https://www.cnblogs.com/dangjingwei/p/12376645.html
Copyright © 2011-2022 走看看