python离线实时语音识别会议记录录音并转写文本代码

代码语言:python

所属分类:其他

代码描述:python离线实时语音识别会议记录录音并转写文本代码

代码标签: python 离线 实时 语音 识别 会议 记录 录音 转写 文本 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import tkinter as tk
from tkinter import ttk, scrolledtext, messagebox
import threading
import queue
import sounddevice as sd
from scipy.io.wavfile import write
import numpy as np
from faster_whisper import WhisperModel
import os
import datetime
import torch
import noisereduce as nr # 【新增】导入降噪库

# --- 全局配置 ---
LANGUAGES = { "简体中文": "zh", "自动检测": "auto", "English": "en", "日本語": "ja", "한국어": "ko", "Français": "fr", "Deutsch": "de", "Español": "es" }
SAMPLE_RATE = 16000 # 【新增】将采样率定义为全局常量

class AdvancedRecorderApp:
    def __init__(self, master):
        self.master = master
        self.is_recording = False
        self.model = None
        self.current_model_settings = {}
        
        self.setup_ui()
        self.check_device()

    def setup_ui(self):
        self.master.title("高级会议录音神器 V2.1 (降噪增强版)")
        self.master.geometry("800x650") # 稍微增加高度以容纳新控件

        # --- 设置区域 ---
        settings_frame = ttk.LabelFrame(self.master, text="设置")
        settings_frame.pack(padx=10, pady=10, fill="x")

        # 模型选择
        ttk.Label(settings_frame, text="模型:").grid(row=0, column=0, padx=5, pady=5, sticky="w")
        self.model_var = tk.StringVar(value="small") # 推荐small作为默认
        model_options = ["tiny", "base", "small", "medium", "large-v3"]
        self.model_menu = ttk.Combobox(settings_frame, textvariable=self.model_var, values=model_options, state="readonly")
        self.model_menu.grid(row=0, column=1, padx=5, pady=5)

        # 语言选择
        ttk.Label(settings_frame, text="语言:").grid(row=0, column=2, padx=5, pady=5, sticky="w")
        self.lang_var = tk.StringVar(value="简体中文")
        lang_options = list(LANGUAGES.keys())
        self.lang_menu = ttk.Combobox(settings_frame, textvariable=self.lang_var, values=lang_options, state="readonly")
        self.lang_menu.grid(row=0, column=3, padx=5, pady=5)

        # 设备选择
        ttk.Label(settings_frame, text="设备:").grid(row=1, column=0, padx=5, pady=5, sticky="w")
        self.device_var = tk.StringVar(value="cpu")
        self.device_.........完整代码请登录后点击上方下载按钮下载查看

网友评论0