diff --git a/.gitignore b/.gitignore index 579ffe8..fba2581 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,9 @@ __pycache__ *.mp4 *.mkv *.wav -.DS_Store .idea +.DS_Store *info - *database.db *test.py *.7z @@ -18,3 +17,4 @@ __pycache__ *.afphoto icon*.png 视频封面.png + diff --git a/.idea/CapsWriter.iml b/.idea/CapsWriter.iml deleted file mode 100644 index d0876a7..0000000 --- a/.idea/CapsWriter.iml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/__init__.pyw b/src/__init__.pyw index 805b8ab..b52caa4 100644 --- a/src/__init__.pyw +++ b/src/__init__.pyw @@ -1,11 +1,9 @@ # -*- coding: UTF-8 -*- import os, sys, time -try: - os.chdir(os.path.dirname(__file__)) # 更改工作目录,指向正确的当前文件夹 - sys.path.append(os.path.dirname(__file__)) # 将当前目录导入 python 寻找 package 和 moduel 的变量 -except: - print('更改使用路径失败,不过没关系') + +os.chdir(os.path.dirname(os.path.abspath(__file__))) # 更改工作目录,指向正确的当前文件夹 +sys.path.append(os.path.dirname(os.path.abspath(__file__))) # 将当前目录导入 python 寻找 package 和 moduel 的变量 # os.environ['PATH'] += os.pathsep + os.path.abspath('./bin') # 将可执行文件的目录加入环境变量 from PySide2.QtWidgets import * @@ -23,11 +21,11 @@ from moduels.component.NormalValue import 常量 def 高分屏变量设置(app): os.environ['QT_SCALE_FACTOR'] = '1' - app.setAttribute(Qt.AA_EnableHighDpiScaling) QCoreApplication.instance().setAttribute(Qt.AA_UseHighDpiPixmaps) def main(): + QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) app = QApplication(sys.argv) 高分屏变量设置(app) createDB() diff --git a/src/moduels/function/createDB.py b/src/moduels/function/createDB.py index a5ad716..e3a4971 100644 --- a/src/moduels/function/createDB.py +++ b/src/moduels/function/createDB.py @@ -19,8 +19,8 @@ def createDB(): value text )''') else: - print('偏好设置表单已存在') - # + # print('偏好设置表单已存在') + pass result = cursor.execute(f'select * from sqlite_master where name = "{语音引擎表单名}";') if result.fetchone() == None: cursor.execute(f'''create table {语音引擎表单名} ( @@ -33,7 +33,8 @@ def createDB(): AccessKeySecret text )''') else: - print('语音引擎表单名已存在') + # print('语音引擎表单名已存在') + pass # # result = cursor.execute(f'select * from sqlite_master where name = "{皮肤表单名}";') # if result.fetchone() == None: diff --git a/src/moduels/gui/MainWindow.py b/src/moduels/gui/MainWindow.py index f85035e..50670ab 100644 --- a/src/moduels/gui/MainWindow.py +++ b/src/moduels/gui/MainWindow.py @@ -4,7 +4,7 @@ from PySide2.QtWidgets import * from PySide2.QtGui import * from moduels.component.NormalValue import 常量 -from moduels.component.Stream import Stream + from moduels.gui.Tab_CapsWriter import Tab_CapsWriter # from moduels.gui.Tab_Stdout import Tab_Stdout from moduels.gui.Tab_Config import Tab_Config @@ -34,10 +34,9 @@ class MainWindow(QMainWindow): # 定义多个不同功能的 tab self.设置标签页 = Tab_Config() # 设置页要在前排加载,以确保一些设置加载成功 self.CapsWriter标签页 = Tab_CapsWriter() # 主要功能的 tab - # self.打印输出标签页 = Tab_Stdout() self.帮助标签页 = Tab_Help() - self.标准输出流 = Stream() + # @@ -54,33 +53,17 @@ class MainWindow(QMainWindow): # self.设置标签页.状态栏消息.connect(lambda 消息, 时间: self.状态栏.showMessage(消息, 时间)) self.帮助标签页.状态栏消息.connect(lambda 消息, 时间: self.状态栏.showMessage(消息, 时间)) - self.标准输出流.newText.connect(self.CapsWriter标签页.更新控制台输出) + pass def initValues(self): # self.adjustSize() # self.setGeometry(QStyle(Qt.LeftToRight, Qt.AlignCenter, self.size(), QApplication.desktop().availableGeometry())) 常量.状态栏 = self.状态栏 - sys.stdout = self.标准输出流 + self.setWindowIcon(QIcon(常量.图标路径)) self.setWindowTitle('CapsWriter 语音输入工具') self.setWindowFlag(Qt.WindowStaysOnTopHint) # 始终在前台 - print("""\n软件介绍: - -CapsWriter,顾名思义,就是按下大写锁定键来打字的工具。它的具体作用是:当你按下键盘上的大写锁定键后,软件开始语音识别,当你松开大写锁定键时,识别的结果就可以立马上屏。 - -目前软件内置了对阿里云一句话识别 API 的支持。如果你要使用,就需要先在阿里云上实名认证,申请语音识别 API,在设置页面添加一个语音识别引擎。 - -具体申请阿里云 API 的方法,可以参考我这个视频:https://www.bilibili.com/video/BV1qK4y1s7Fb/ - -添加上引擎后,在当前页面选择一个引擎,点击启用按钮,就可以进行语音识别了!嗯 - -启用后,在实际使用中,只要按下 CapsLock 键,软件就会立刻开始录音: - - 如果只是单击 CapsLock 后松开,录音数据会立刻被删除; - 如果按下 CapsLock 键时长超过 0.3 秒,就会开始连网进行语音识别,松开 CapsLock 键时,语音识别结果会被立刻输入。 - -所以你只需要按下 CapsLock 键,无需等待,就可以开始说话,因为当你按下按下 CapsLock 键的时候,程序就开始录音了。说完后,松开,识别结果立马上屏。\r\n""") self.show() diff --git a/src/moduels/gui/Tab_CapsWriter.py b/src/moduels/gui/Tab_CapsWriter.py index 1413f51..0ee477d 100644 --- a/src/moduels/gui/Tab_CapsWriter.py +++ b/src/moduels/gui/Tab_CapsWriter.py @@ -3,11 +3,12 @@ from PySide2.QtWidgets import * from PySide2.QtGui import * from PySide2.QtCore import * -import os, re, subprocess, time +import sys, os, re, subprocess, time import pyaudio # from moduels.component.QLEdit_FilePathQLineEdit import QLEdit_FilePathQLineEdit +from moduels.component.Stream import Stream from moduels.component.NormalValue import 常量 from moduels.component.QEditBox_StdoutBox import QEditBox_StdoutBox # from moduels.component.SpaceLine import QHLine, QVLine @@ -53,7 +54,11 @@ class Tab_CapsWriter(QWidget): self.停止按钮 = QPushButton('停止 CapsWriter') self.启停按钮Box布局 = QHBoxLayout() + self.标准输出流 = Stream() + def initLayouts(self): + self.标准输出流.newText.connect(self.更新控制台输出) + self.引擎选择Box布局.addWidget(self.引擎选择下拉框) self.控制台输出Box布局.addWidget(self.控制台输出框) @@ -78,12 +83,28 @@ class Tab_CapsWriter(QWidget): def 更新控制台输出(self, 文本): self.控制台输出框.print(文本) - def initValues(self): self.引擎线程 = None # self.aliClient = ali_speech.NlsClient() # self.aliClient.set_log_level('WARNING') # 设置 client 输出日志信息的级别:DEBUG、INFO、WARNING、ERROR self.停止按钮.setDisabled(True) + sys.stdout = self.标准输出流 + print("""\n软件介绍: + +CapsWriter,顾名思义,就是按下大写锁定键来打字的工具。它的具体作用是:当你按下键盘上的大写锁定键后,软件开始语音识别,当你松开大写锁定键时,识别的结果就可以立马上屏。 + +目前软件内置了对阿里云一句话识别 API 的支持。如果你要使用,就需要先在阿里云上实名认证,申请语音识别 API,在设置页面添加一个语音识别引擎。 + +具体申请阿里云 API 的方法,可以参考我这个视频:https://www.bilibili.com/video/BV1qK4y1s7Fb/ + +添加上引擎后,在当前页面选择一个引擎,点击启用按钮,就可以进行语音识别了!嗯 + +启用后,在实际使用中,只要按下 CapsLock 键,软件就会立刻开始录音: + + 如果只是单击 CapsLock 后松开,录音数据会立刻被删除; + 如果按下 CapsLock 键时长超过 0.3 秒,就会开始连网进行语音识别,松开 CapsLock 键时,语音识别结果会被立刻输入。 + +所以你只需要按下 CapsLock 键,无需等待,就可以开始说话,因为当你按下按下 CapsLock 键的时候,程序就开始录音了。说完后,松开,识别结果立马上屏。\r\n""") def 启动引擎(self): if self.引擎线程 != None: return