mirror of
https://github.com/HaujetZhao/CapsWriter.git
synced 2025-07-13 13:02:08 +08:00
稍微改进了一下,将 appkey 等参数移动到 token.ini 文件中填写
This commit is contained in:
parent
729ea051b2
commit
02e1098ba2
18
README.md
18
README.md
@ -29,7 +29,9 @@
|
||||
|
||||
(有兴趣的可以改成百度、腾讯、讯飞的 api 试试)。
|
||||
|
||||
使用方法很简单:用 python 运行 `run.py` 后,按下 `Caps Lock`(也就是大写锁定键)超过 0.3 秒后,就会开始用阿里云的 api 进行语音识别,松开按键后,会将识别结果自动输入。
|
||||
使用方法很简单:运行程序后,按下 `Caps Lock`(也就是大写锁定键)超过 0.3 秒后,就会开始用阿里云的 api 进行语音识别,松开按键后,会将识别结果自动输入。
|
||||
|
||||
因为使用了阿里云的 api,所以需要用户自己到阿里云申请,再填到 `token.ini` 中才能正常使用。
|
||||
|
||||
对于聊天时候进行快捷输入、写代码时快速加入中文注释非常的方便。
|
||||
|
||||
@ -38,9 +40,13 @@
|
||||
|
||||
请到 HacPai 帖子中进行查看:[Caps Wirter 发布:按住大写锁定键,进行语音识别输入](https://hacpai.com/article/1594371212477)
|
||||
|
||||
### 安装使用
|
||||
### 开箱即用
|
||||
|
||||
本工具是一个python脚本,依赖于以下模块:
|
||||
小白用户,只需要在 Release 界面下载打包好的 exe 文件,运行,会在同级目录生成一个 `token.ini` 文件,在 `token.ini` 中填入你阿里云拥有 **管理智能语音交互(NLS)** 权限的 **RAM访问控制** 用户的 **Accesskey Id**、**Accesskey Secret** 和智能语音交互语音识别项目的 **appkey** ,就可以正常使用了。详细步骤之后我录一个视频
|
||||
|
||||
### 开发使用
|
||||
|
||||
本工具是一个python脚本,上面小白下载的 Release 其实是用 pyinstaller 导出的 exe 文件,如果你想在源码基础上使用,就需要安装以下模块:
|
||||
|
||||
- keyboard
|
||||
- pyaudio
|
||||
@ -53,12 +59,12 @@
|
||||
- pyaudio 在 windows 上不是太好安装,可以先到 [这个链接](https://www.lfd.uci.edu/~gohlke/pythonlibs) 下载 pyaudio 对应版本的 whl 文件,再用 pip 安装
|
||||
- alibabacloud-nls-python-sdk 不是通过 python 安装,而是通过 [阿里云官方文档的方法](https://help.aliyun.com/document_detail/120693.html) 进行安装。
|
||||
|
||||
另外,需要在 `run.py` 中填入阿里云拥有 **管理智能语音交互(NLS)** 权限的 **RAM访问控制** 用户的 **accessID**、**accessKey** 和智能语音交互语音识别项目的 **appkey** 。
|
||||
|
||||
做完以上步骤后,只要运行 `run.py` 就可以用了!
|
||||
另外,需要在 `token.ini` 中填入阿里云拥有 **管理智能语音交互(NLS)** 权限的 **RAM访问控制** 用户的 **accessID**、**accessKey** 和智能语音交互语音识别项目的 **appkey** 。
|
||||
|
||||
本文件夹内有一个 `安装指南` 文件夹,在里面可以找到详细的安装指南,还包括了提前下载的 alibabacloud-nls-python-sdk 和 pyaudio 的 whl 文件。
|
||||
|
||||
用 python 运行 `run.py` 后,按下 `Caps Lock`(也就是大写锁定键)超过 0.3 秒后,就会开始用阿里云的 api 进行语音识别,松开按键后,会将识别结果自动输入。
|
||||
|
||||
### 后话
|
||||
|
||||
因为作者就是本着凑合能用就可以了的心态做这个工具的,所以图形界面什么的也没做,整个工具单纯就一个脚本,功能也就一个,按住大写锁定键开始语音识别,松开后输入结果。目前作者本人已经很满意。
|
||||
|
41
run.py
41
run.py
@ -14,10 +14,6 @@ from aliyunsdkcore.client import AcsClient
|
||||
from aliyunsdkcore.request import CommonRequest
|
||||
import configparser
|
||||
|
||||
""" 在这里填写你的 API 设置 """
|
||||
accessID = "xxxxxxxxxxxxxxxxxxxxxxxx"
|
||||
accessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||
appkey = 'xxxxxxxxxxxxxxxx'
|
||||
|
||||
|
||||
"""pyaudio参数"""
|
||||
@ -48,8 +44,11 @@ class MyCallback(SpeechRecognizerCallback):
|
||||
print('结果: %s' % (
|
||||
message['payload']['result']))
|
||||
result = message['payload']['result']
|
||||
try:
|
||||
if result[-1] == '。': # 如果最后一个符号是句号,就去掉。
|
||||
result = result[0:-1]
|
||||
except Exception as e:
|
||||
pass
|
||||
keyboard.write(result) # 输入识别结果
|
||||
keyboard.press_and_release('caps lock') # 再按下大写锁定键,还原大写锁定
|
||||
def on_task_failed(self, message):
|
||||
@ -59,22 +58,16 @@ class MyCallback(SpeechRecognizerCallback):
|
||||
pass
|
||||
|
||||
def get_token():
|
||||
if not os.path.exists('token.ini'):
|
||||
init_id = """[Token]
|
||||
id = 0000000000000000000
|
||||
expiretime = 0000000000"""
|
||||
fp = open("token.ini",'w')
|
||||
fp.write(init_id)
|
||||
fp.close()
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read_file(open('token.ini'))
|
||||
token = config.get("Token","Id")
|
||||
expireTime = config.get("Token","ExpireTime")
|
||||
accessID = config.get("Token","accessKeyId")
|
||||
accessKey = config.get("Token","accessKeySecret")
|
||||
# 要是 token 还有 5 秒过期,那就重新获得一个。
|
||||
if (int(expireTime) - time.time()) < 5 :
|
||||
# 创建AcsClient实例
|
||||
global accessID, accessKey
|
||||
client = AcsClient(
|
||||
accessID, # 填写 AccessID
|
||||
accessKey, # 填写 AccessKey
|
||||
@ -173,7 +166,27 @@ def recoder(recognizer, p):
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
print('开始程序')
|
||||
print('\r\n开始程序\r\n')
|
||||
|
||||
if not os.path.exists('token.ini'):
|
||||
init_id = """[Token]
|
||||
id = 0000000000000000000
|
||||
expiretime = 0000000000
|
||||
accessKeyId = 000000
|
||||
accessKeySecret = 000000
|
||||
appkey = 00000"""
|
||||
fp = open("token.ini",'w')
|
||||
fp.write(init_id)
|
||||
fp.close()
|
||||
input("""\r\n 检测到没有配置文件,所以刚刚已在同级目录生成了 token.ini 配置文件,\r\n
|
||||
请打开 token.ini 配置文件,\r\n
|
||||
然后填入阿里云的 accesskeyid 和 accesskeysecret, 以及你的语音识别项目的 appkey,\r\n
|
||||
再回到本界面,按任意键后,回车继续\r\n
|
||||
|
||||
如果下面出错了,那么就很有可能是 accesskeyid 、accesskeysecret 或 appkey 填错了\r\n""")
|
||||
config = configparser.ConfigParser()
|
||||
config.read_file(open('token.ini'))
|
||||
appkey = config.get("Token","appkey")
|
||||
|
||||
client = ali_speech.NlsClient()
|
||||
client.set_log_level('WARNING') # 设置 client 输出日志信息的级别:DEBUG、INFO、WARNING、ERROR
|
||||
@ -181,6 +194,8 @@ if __name__ == '__main__':
|
||||
recognizer = get_recognizer(client, appkey)
|
||||
p = pyaudio.PyAudio()
|
||||
|
||||
print("""\r\n初始化完成,现在可以将本工具最小化,在需要输入的界面,按住 CapsLock 键 0.3 秒后开始说话,松开 CapsLock 键后识别结果会自动输入\r\n""")
|
||||
|
||||
keyboard.hook_key('caps lock', on_hotkey)
|
||||
print('{}//:按住 CapsLock 键 0.3 秒后开始说话...'.format(count), end=' ')
|
||||
keyboard.wait()
|
||||
|
Loading…
Reference in New Issue
Block a user