import os import time from vosk import Model, KaldiRecognizer import pyaudio import json import pyautogui import pygetwindow as gw from pynput.keyboard import Controller, Key #检测模型路径,加载模型 model_path = "vosk-model-cn-0.22" if not os.path.exists(model_path): print(f"模型路径不存在:{model_path}") exit(1) #模型加载与语言识别 model = Model(model_path) recognizer = KaldiRecognizer(model, 16000) #初始化音流 p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=8192) keyword = Controller() # pynput 键盘控制器 print("开始语言输入,请讲话...") try: while True: data = stream.read(4096,exception_on_overflow=False) if recognizer.AcceptWaveform(data): result = json.loads(recognizer.Result()) text = result.get('text', '') print("识别结果:", text) # if text:... else: partial = json.loads(recognizer.PartialResult()) partial_text = partial.get('partial', '') if partial_text: print("部分收别结果:",partial_text) except KeyboardInterrupt: print("停止录音") #清理资源 stream.stop_stream() stream.close() p.terminate()
流程