Python与阿里云语音服务实现语音转文字服务的实时识别功能 整理不易请您珍惜❤️python# -*- coding: utf-8 -*-import jsonimport timeimport hmacimport hashlibimport base64import requestsimport pyaudioimport threadingimport websocketclass AliSpeechRecognition:def __init__(self, app_key, token, service_url):self.app_key app_keyself.token tokenself.service_url service_urlself.ws Noneself.result_callback Nonedef set_result_callback(self, callback):设置识别结果回调函数self.result_callback callbackdef start_recognition(self):启动语音识别# 构建请求头headers {Content-Type: application/json,Authorization: Bearer self.token}# 构建请求体body {appkey: self.app_key,format: pcm,sample_rate: 16000,enable_intermediate_result: True,enable_punctuation: True}# 创建WebSocket连接websocket.enableTrace(False)self.ws websocket.WebSocketApp(self.service_url,headerheaders,on_messageself.on_message,on_errorself.on_error,on_closeself.on_close,on_openself.on_open)# 启动WebSocketwst threading.Thread(targetself.ws.run_forever)wst.daemon Truewst.start()# 启动音频采集self.start_audio_capture()def start_audio_capture(self):启动麦克风音频采集FORMAT pyaudio.paInt16CHANNELS 1RATE 16000CHUNK 3200p pyaudio.PyAudio()stream p.open(formatFORMAT,channelsCHANNELS,rateRATE,inputTrue,frames_per_bufferCHUNK)print(开始说话...)while True:try:data stream.read(CHUNK)if self.ws and self.ws.sock and self.ws.sock.connected:self.ws.send(data, websocket.ABNF.OPCODE_BINARY)except:breakstream.stop_stream()stream.close()p.terminate()def on_message(self, ws, message):处理服务器返回的消息try:data json.loads(message)if data.get(header, {}).get(status) 200:result data.get(payload, {}).get(result, )if result:print(识别结果:, result)if self.result_callback:self.result_callback(result)except Exception as e:print(解析消息错误:, e)def on_error(self, ws, error):print(WebSocket错误:, error)def on_close(self, ws, close_status_code, close_msg):print(WebSocket连接关闭)def on_open(self, ws):print(WebSocket连接成功)def stop_recognition(self):停止识别if self.ws:self.ws.close()# 使用示例def on_result(text):处理识别结果的回调函数print(f实时识别: {text})if __name__ __main__:# 配置参数需要替换成你自己的APP_KEY 你的AppKeyTOKEN 你的TokenSERVICE_URL wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1# 创建识别器recognizer AliSpeechRecognition(APP_KEY, TOKEN, SERVICE_URL)recognizer.set_result_callback(on_result)try:# 开始识别recognizer.start_recognition()# 保持主线程运行while True:time.sleep(1)except KeyboardInterrupt:print(\n停止识别...)recognizer.stop_recognition()安装依赖bashpip install pyaudio websocket-client requests运行步骤1. 获取阿里云语音服务凭证在阿里云控制台开通智能语音交互服务获取AppKey和Token2. 配置参数替换代码中的 APP_KEY、TOKEN 和 SERVICE_URL3. 运行代码执行后会开始监听麦克风实时识别并打印结果4. 停止程序按 CtrlC 停止识别