Skip to content

Commit

Permalink
chore: 优化声波显示悬浮窗显示效果
Browse files Browse the repository at this point in the history
chore: 移除不必要的库
  • Loading branch information
BryceWG committed Oct 24, 2024
1 parent 5d3407c commit a97e3d0
Show file tree
Hide file tree
Showing 13 changed files with 65 additions and 242 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
/dist
/*.spec
/build
history.json
config.json
Binary file modified build_scripts/__pycache__/build_common.cpython-312.pyc
Binary file not shown.
146 changes: 21 additions & 125 deletions build_scripts/build.py
Original file line number Diff line number Diff line change
@@ -1,72 +1,16 @@
import os
import shutil
import subprocess
from pathlib import Path
import json
import certifi

def clean_dirs():
"""清理构建目录"""
dirs_to_clean = ['build', 'dist', 'portable']
for dir_name in dirs_to_clean:
if os.path.exists(dir_name):
shutil.rmtree(dir_name)
from build_common import clean_dirs, get_pyinstaller_base_args, get_output_filename

def create_portable():
"""创建便携版"""
print("正在创建便携版...")

subprocess.run([
'pyinstaller',
'--noconfirm',
'--noconsole',
'--name=VoiceInk',
'--icon=resources/app.ico',
# 添加证书文件
f'--add-data={certifi.where()};certifi',
# 移除 --add-data=qt.conf;. 参数
'--add-data=resources/app.ico;resources/',
'--add-data=resources/style.qss;resources/',
'--add-data=resources/icons/16x16/app.png;resources/icons/16x16/',
'--add-data=resources/icons/24x24/app.png;resources/icons/24x24/',
'--add-data=resources/icons/32x32/app.png;resources/icons/32x32/',
'--add-data=resources/icons/48x48/app.png;resources/icons/48x48/',
'--add-data=resources/icons/256x256/app.png;resources/icons/256x256/',
'--add-data=resources;resources',
# PyQt6 相关配置
'--hidden-import=PyQt6',
'--hidden-import=PyQt6.QtCore',
'--hidden-import=PyQt6.QtGui',
'--hidden-import=PyQt6.QtWidgets',
'--hidden-import=PyQt6.sip',
'--collect-submodules=PyQt6',
'--collect-data=PyQt6',
# 添加系统托盘相关的依赖
'--hidden-import=PyQt6.QtWidgets.QSystemTrayIcon',
'--hidden-import=PyQt6.QtWidgets.QMenu',
'--hidden-import=PyQt6.QtGui.QIcon',
# 其他必要的依赖
'--hidden-import=pynput.keyboard._win32',
'--hidden-import=sounddevice',
'--hidden-import=numpy',
'--hidden-import=openai',
'--hidden-import=requests',
'--hidden-import=pyperclip',
'--hidden-import=pyautogui',
'--hidden-import=win32com.client',
'--hidden-import=emoji',
'--hidden-import=google.generativeai',
'--exclude-module=matplotlib',
'--exclude-module=scipy',
'--exclude-module=pandas',
'--exclude-module=PIL',
'--exclude-module=cv2',
'--hidden-import=PyQt6.QtGui.QFontDatabase',
'--hidden-import=PyQt6.QtGui.QFont',
'--hidden-import=certifi',
'--distpath=portable',
'main.py'
], check=True)
args = get_pyinstaller_base_args()
args.extend(['--distpath=portable', 'main.py'])
subprocess.run(args, check=True)

# 创建默认配置文件
default_config = {
Expand All @@ -89,15 +33,15 @@ def create_portable():
},
"custom": {
"api_key": "",
"api_url": "",
"model": ""
"api_url": "https://api.siliconflow.cn/v1/audio/transcriptions",
"model": "FunAudioLLM/SenseVoiceSmall"
}
},
"post_process": {
"openai": {
"api_key": "",
"api_url": "https://api.openai.com/v1",
"model": "gpt-3.5-turbo"
"model": "gpt-4o-mini"
},
"groq": {
"model": "mixtral-8x7b-32768"
Expand All @@ -108,7 +52,7 @@ def create_portable():
"provider": "openai",
"post_process": False,
"post_process_provider": "openai",
"post_process_prompt": "修正文本中错误,保持原意",
"post_process_prompt": "更正文本中错误,保持原意",
"wave_window_position": "right-middle",
"wave_window_custom_pos": {"x": 0, "y": 0},
"remove_punctuation": True,
Expand All @@ -118,8 +62,8 @@ def create_portable():
"audio_settings": {
"sample_rate": 44100,
"channels": 1,
"trigger_press_time": 0.1,
"min_press_time": 0.3,
"trigger_press_time": 0.2,
"min_press_time": 0.5,
"max_record_time": 60.0
},
"history_settings": {
Expand Down Expand Up @@ -152,71 +96,23 @@ def create_portable():
f.write('- 所有配置和历史记录都保存在程序目录下\n')
f.write('- 如需迁移程序,复制整个文件夹即可\n')

# 打包为zip
shutil.make_archive('VoiceInk_便携版', 'zip', 'portable/VoiceInk')
print("便携版创建完成:VoiceInk_便携版.zip")
# 使用版本号命名
output_name = get_output_filename(is_portable=True)
shutil.make_archive(output_name, 'zip', 'portable/VoiceInk')
print(f"便携版创建完成:{output_name}.zip")

def create_single_exe():
"""创建单文件版本"""
print("正在创建单文件版本...")

subprocess.run([
'pyinstaller',
'--noconfirm',
'--noconsole',
'--onefile',
'--name=VoiceInk',
'--icon=resources/app.ico',
# 添加证书文件
f'--add-data={certifi.where()};certifi',
# 添加 qt.conf
'--add-data=qt.conf;.',
# 修改资源文件的打包方式
'--add-data=resources/app.ico;resources/',
'--add-data=resources/style.qss;resources/',
'--add-data=resources/icons/16x16/app.png;resources/icons/16x16/',
'--add-data=resources/icons/24x24/app.png;resources/icons/24x24/',
'--add-data=resources/icons/32x32/app.png;resources/icons/32x32/',
'--add-data=resources/icons/48x48/app.png;resources/icons/48x48/',
'--add-data=resources/icons/256x256/app.png;resources/icons/256x256/',
# 确保所有资源目录都被包含
'--add-data=resources;resources',
# PyQt6 相关配置
'--hidden-import=PyQt6',
'--hidden-import=PyQt6.QtCore',
'--hidden-import=PyQt6.QtGui',
'--hidden-import=PyQt6.QtWidgets',
'--hidden-import=PyQt6.sip',
'--collect-submodules=PyQt6',
'--collect-data=PyQt6',
# 添加系统托盘相关的依赖
'--hidden-import=PyQt6.QtWidgets.QSystemTrayIcon',
'--hidden-import=PyQt6.QtWidgets.QMenu',
'--hidden-import=PyQt6.QtGui.QIcon',
# 其他必要的依赖
'--hidden-import=pynput.keyboard._win32',
'--hidden-import=sounddevice',
'--hidden-import=numpy',
'--hidden-import=openai',
'--hidden-import=requests',
'--hidden-import=pyperclip',
'--hidden-import=pyautogui',
'--hidden-import=win32com.client',
'--hidden-import=emoji',
'--hidden-import=google.generativeai', # 添加 Google AI 依赖
# 排除不需要的模块
'--exclude-module=matplotlib',
'--exclude-module=scipy',
'--exclude-module=pandas',
'--exclude-module=PIL',
'--exclude-module=cv2',
'--hidden-import=PyQt6.QtGui.QFontDatabase',
'--hidden-import=PyQt6.QtGui.QFont',
'--hidden-import=certifi',
'main.py'
], check=True)
args = get_pyinstaller_base_args()
args.extend(['--onefile', 'main.py'])
subprocess.run(args, check=True)

print("单文件版本创建完成:dist/VoiceInk.exe")
# 重命名输出文件以包含版本号
output_name = get_output_filename(is_portable=False)
os.rename('dist/VoiceInk.exe', f'dist/{output_name}.exe')
print(f"单文件版本创建完成:dist/{output_name}.exe")

def main():
# 检查是否在虚拟环境中
Expand Down
24 changes: 18 additions & 6 deletions build_scripts/build_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def get_pyinstaller_base_args():
'--icon=resources/app.ico',
# 添加证书文件
f'--add-data={certifi.where()};certifi',
# 移除 --add-data=qt.conf;. 参数
# 资源文件
'--add-data=resources/app.ico;resources/',
'--add-data=resources/style.qss;resources/',
'--add-data=resources/icons/16x16/app.png;resources/icons/16x16/',
Expand All @@ -36,27 +36,39 @@ def get_pyinstaller_base_args():
'--hidden-import=PyQt6.sip',
'--collect-submodules=PyQt6',
'--collect-data=PyQt6',
# 添加系统托盘相关的依赖
# 系统托盘相关依赖
'--hidden-import=PyQt6.QtWidgets.QSystemTrayIcon',
'--hidden-import=PyQt6.QtWidgets.QMenu',
'--hidden-import=PyQt6.QtGui.QIcon',
# 其他必要的依赖
# 核心功能依赖
'--hidden-import=pynput.keyboard._win32',
'--hidden-import=sounddevice',
'--hidden-import=numpy',
'--hidden-import=openai',
'--hidden-import=openai', # 保留 OpenAI
'--hidden-import=requests',
'--hidden-import=pyperclip',
'--hidden-import=pyautogui',
'--hidden-import=win32com.client',
'--hidden-import=emoji',
'--hidden-import=google.generativeai',
'--hidden-import=emoji', # 保留 emoji
# 排除不需要的模块
'--exclude-module=matplotlib',
'--exclude-module=scipy',
'--exclude-module=pandas',
'--exclude-module=PIL',
'--exclude-module=cv2',
# 其他必要的依赖
'--hidden-import=PyQt6.QtGui.QFontDatabase',
'--hidden-import=PyQt6.QtGui.QFont',
'--hidden-import=certifi'
]

def get_version():
"""获取程序版本号"""
return "1.0.0" # 可以从配置文件或其他地方读取

def get_output_filename(is_portable=True):
"""获取输出文件名"""
version = get_version()
if is_portable:
return f'VoiceInk_便携版_v{version}'
return f'VoiceInk_v{version}'
61 changes: 0 additions & 61 deletions config.json

This file was deleted.

Binary file modified core/__pycache__/transcription_manager.cpython-312.pyc
Binary file not shown.
1 change: 0 additions & 1 deletion core/transcription_manager.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import openai
import google.generativeai as genai
import requests
import pyautogui
import pyperclip
Expand Down
Binary file modified gui/__pycache__/main_window.cpython-312.pyc
Binary file not shown.
Binary file modified gui/__pycache__/wave_visualizer.cpython-312.pyc
Binary file not shown.
6 changes: 3 additions & 3 deletions gui/main_window.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from PyQt6.QtWidgets import (QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
QPushButton, QLabel, QStatusBar, QScrollArea,
QSystemTrayIcon, QMenu, QStyle, QApplication)
QPushButton, QLabel,
QSystemTrayIcon, QMenu, QApplication)
from PyQt6.QtCore import Qt, QTimer, pyqtSignal, QSize # 从 QtCore 导入 QSize
from PyQt6.QtGui import QIcon, QFont, QFontDatabase
from PyQt6.QtGui import QIcon, QFont
from .settings_dialog import SettingsDialog
from .wave_visualizer import WaveVisualizerWindow
from core.transcription_manager import TranscriptionManager
Expand Down
Loading

0 comments on commit a97e3d0

Please sign in to comment.