拓冰建站拓冰建站
首页 / 资讯中心 / 正文

为什么选择aspire-biencoder-compsci-spec?5大核心优势解析

TMSpeech外部识别器开发教程Python脚本对接完整示例【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeechTMSpeech是一款功能强大的腾讯会议摸鱼工具支持通过外部识别器扩展语音识别能力。本文将详细介绍如何开发Python脚本作为TMSpeech的外部识别器实现自定义语音识别功能并提供完整的对接示例。外部识别器开发准备工作 环境要求开发TMSpeech外部识别器需要以下环境和依赖Python 3.6及以上版本必要的音频处理库pyaudio、numpy语音识别框架sherpa-onnx本文以该框架为例项目结构TMSpeech项目中与外部识别器相关的文件位于external_recognizer目录下主要包括common_audio_utils.py音频处理通用工具simulate-streaming-sense-voice.py基于SenseVoice模型的流式识别示例streaming-with-endpoint-detection.py带端点检测的流式识别示例核心开发步骤 1. 识别器脚本基础框架一个标准的TMSpeech外部识别器Python脚本应包含以下核心模块#!/usr/bin/env python3 import argparse import sys import multiprocessing import os from common_audio_utils import ( pyaudio, sherpa_onnx, np, sample_rate, assert_file_exists, start_recording, MyPrinter, select_input_device, get_audio_devices, cleanup_recording_process ) # 全局变量定义 killed False recording_process None samples_queue None stop_event None def get_args(): # 解析命令行参数 parser argparse.ArgumentParser(formatter_classargparse.ArgumentDefaultsHelpFormatter) # 添加必要的参数定义 return parser.parse_args() def create_recognizer(args): # 创建识别器实例 pass def main(): # 主函数逻辑 pass if __name__ __main__: try: main() except KeyboardInterrupt: # 处理程序中断 pass2. 音频采集与处理TMSpeech外部识别器通过麦克风或系统音频采集声音使用common_audio_utils.py中的工具函数实现# 获取音频设备列表 p_temp pyaudio.PyAudio() devices get_audio_devices(p_temp) # 选择录音设备 selected_device_indices [] if args.device 0: selected_device_indices select_input_device(devices, p_temp) else: selected_device_indices [args.device] # 创建录音进程 samples_queue multiprocessing.Queue() stop_event multiprocessing.Event() recording_process multiprocessing.Process( targetstart_recording, args(selected_device_indices, samples_queue, stop_event, args.mix_mode, args.debug_save_audio) ) recording_process.start()3. 识别器初始化与配置以Sherpa-ONNX为例创建识别器实例的代码如下def create_recognizer(args): assert_file_exists(args.encoder) assert_file_exists(args.decoder) assert_file_exists(args.joiner) assert_file_exists(args.tokens) recognizer sherpa_onnx.OnlineRecognizer.from_transducer( tokensargs.tokens, encoderargs.encoder, decoderargs.decoder, joinerargs.joiner, num_threadsargs.num_threads, sample_rate16000, feature_dim80, enable_endpoint_detectionTrue, rule1_min_trailing_silence2.4, rule2_min_trailing_silence1.2, decoding_methodargs.decoding_method, providerargs.provider ) return recognizer4. 音频流处理与识别实现实时音频流识别的核心逻辑stream recognizer.create_stream() while not killed: try: samples samples_queue.get(timeout0.5) # 从队列获取音频数据 except: continue # 将音频数据送入识别流 stream.accept_waveform(sample_rate, samples) # 处理所有准备好的音频 while recognizer.is_ready(stream): recognizer.decode_stream(stream) # 检查是否到达端点 is_endpoint recognizer.is_endpoint(stream) # 获取识别结果 text recognizer.get_result(stream).strip() # 输出识别结果TMSpeech会捕获此输出 print(text) # 如果到达端点重置流 if is_endpoint: recognizer.reset(stream)完整示例SenseVoice识别器对接simulate-streaming-sense-voice.py是一个完整的外部识别器示例使用SenseVoice模型实现语音识别模型下载与配置该脚本需要以下模型文件silero_vad.onnx语音活动检测模型SenseVoice模型文件model.onnxtokens.txt词汇表文件脚本会自动检查模型文件是否存在如果不存在会提示下载链接vad_model_url https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/silero_vad.onnx onnx_model_url https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-int8-2025-09-09.tar.bz2 def try_download_model(vad_model_path, onnx_model_path): if not os.path.exists(vad_model_path): print(f请下载文件到{vad_model_path}, filesys.stderr) print(f下载链接{vad_model_url}, filesys.stderr) if not os.path.exists(onnx_model_path): print(f请下载并解压文件夹到{onnx_model_path}, filesys.stderr) print(f下载链接{onnx_model_url}, filesys.stderr)VAD语音活动检测该示例集成了VAD语音活动检测功能能够自动检测语音的开始和结束config sherpa_onnx.VadModelConfig() config.silero_vad.model args.silero_vad_model config.silero_vad.threshold 0.5 config.silero_vad.min_silence_duration 0.1 # 静音时长阈值 config.silero_vad.min_speech_duration 0.25 # 最小语音时长 config.silero_vad.max_speech_duration 8 # 最大语音时长 config.sample_rate sample_rate vad sherpa_onnx.VoiceActivityDetector(config, buffer_size_in_seconds100)TMSpeech配置外部识别器开发完成后需要在TMSpeech中配置使用外部识别器打开TMSpeech配置界面切换到语音识别选项卡在语音识别器下拉菜单中选择命令行识别器在资源配置界面确保已安装所需的模型文件配置命令行参数指定外部识别器脚本路径和参数python external_recognizer/simulate-streaming-sense-voice.py --silero-vad-modelsilero_vad.onnx --sense-voicemodel.onnx --tokenstokens.txt调试与优化技巧 日志输出在开发过程中可以通过stderr输出调试信息TMSpeech会将这些信息保存到日志文件中print(识别已启动请说话, filesys.stderr)多设备支持TMSpeech外部识别器支持多设备录音可通过--mix-mode参数设置混音模式average平均混音默认add加法混音性能优化调整线程数通过--num-threads参数设置识别线程数选择合适的计算设备通过--provider参数选择cpu或cuda模型优化使用int8量化模型减小内存占用和提高速度总结通过本文介绍的方法你可以轻松开发TMSpeech的外部识别器扩展其语音识别能力。TMSpeech提供了灵活的插件架构和完善的工具支持使外部识别器的开发变得简单高效。完整的示例代码可参考项目中的external_recognizer目录包括simulate-streaming-sense-voice.pystreaming-with-endpoint-detection.pycommon_audio_utils.py开始开发你自己的TMSpeech外部识别器体验更强大的语音识别功能吧【免费下载链接】TMSpeech腾讯会议摸鱼工具项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门