实时语音识别(Python+HTML实战)
在Python中,可以使用speech_recognition
库进行语音识别,并且可以结合HTML创建用户界面。以下是一个简单的实例,展示如何使用Python进行实时语音识别,并将识别结果显示在网页上。
首先,安装必要的库:
pip install SpeechRecognition PyAudio
然后,创建Python脚本进行语音识别:
from speech_recognition importRecognizer, Microphone
import pyttsx3
import sys
import webview
# 初始化语音识别和文本转语音对象
recognizer = Recognizer()
engine = pyttsx3.init()
# 实时语音识别函数
def speech_to_text():
with Microphone() as source:
print("请开始说话...")
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio, language='en-US')
print(f"你说了: {text}")
return text
except Exception as e:
print(e)
return None
# 将文本转换为语音
def text_to_speech(text):
engine.say(text)
engine.runAndWait()
# 主界面的HTML内容
html_content = """
<!DOCTYPE html>
<html>
<head><title>实时语音识别</title></head>
<body>
<h1>实时语音识别</h1>
<div id="output"></div>
<button onclick="startRecognition()">开始识别</button>
<script type="text/javascript">
function startRecognition() {
window.webview.speechToText().then(function(text) {
document.getElementById('output').innerText = text;
});
}
</script>
</body>
</html>
"""
# 启动webview窗口
window = webview.create_window('实时语音识别', html=html_content, js_api=['speechToText'])
# 定义speechToText API函数
@window.js_function
def speech_to_text():
text = pywebview.http.Response('text/plain', speech_to_text())
return text
# 添加关闭窗口监听器
window.closed += lambda: app.terminate()
# 显示窗口
window.run()
在上述代码中,我们首先导入了必要的库,并初始化了语音识别和文本转语音对象。speech_to_text
函数负责实时从麦克风捕获语音并将其转换为文本。text_to_speech
函数则将文本转换成语音。
HTML内容定义了一个简单的界面,并提供了一个按钮来触发startRecognition
函数。这个函数会调用Python端定义的speechToText
函数,并将识别的结果显示在页面上。
最后,我们使用webview.create_window
创建了一个窗口,并通过@window.js_function
将speechToText
函数暴露给JavaScript环境。用户界面会在浏览器中显示,并且可以通过按钮进行实时语音识别。
评论已关闭