python语音识别

文本转语音

使用pyttsx和SAPI完成文本转语音

 pip install pyttsx3
 # 或者在末尾加上镜像 -i https://mirror.baidu.com/pypi/simple 

有两种文本转语音的方法:

"""
	直接把输入的文字转语音
"""
# one
import pyttsx3 as pyttsx
engine = pyttsx.init()
engine.say('啊对对对')
engine.runAndWait()

# two
from win32com.client import Dispatch
speaker = Dispatch('SAPI.SpVoice')
speaker.Speak('啊对对对')
del speaker

使用SpeechLib实现文本文件转语音

pip install comtypes
"""
    使用SpeechLib实现文本文件转语音
"""
from comtypes.client import CreateObject
from comtypes.gen import SpeechLib

#engine 相当于源头 stream相当于流 (水龙头和水)
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,是轻量级的语音识别引擎。

pip install PocketSphinx
pip install SpeechRecognition -i https://mirror.baidu.com/pypi/simple

注意:

安装speech_recognition之后是不支持中文的,需要在Sphinx语音识别工具包里下载对应的普通画声学和语言模型。地址:https://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/
下载Mandarin即可,将该文件放在Speech_recognition文件所在的目录下,并对照原来存在的那个文件对其重命名。

import speech_recognition as sr
audio_file='demo_audio.wav'
r=sr.Recognizer()
#打开语音文件
with sr.AudioFile(audio_file) as source:
    audio = r.record(source)

#将语音转文字
print('文本内容:',r.recognize_sphinx(audio,language='zh-CN'))

参考资料:
哔哩哔哩 python语音识别

你可能感兴趣的:(项目,语音识别,python,人工智能)