代码和软件在公众号【走神研究所】发送【键盘】关键字获取。

这是一款基于python的桌面小工具,能够实时显示你敲击键盘的按键,并且当摁下“J”、“N”、“T”、“M”时会发出坤音。

具体视频演示和代码原理在这里

打开程序,随意摁下键盘,小坤坤就会张开嘴巴,显示键盘。

当触发到绝密时机的时候(键盘jntm)就会发出美妙的坤音。

现在给大家讲下整个程序的原理。

首先是资源文件,小人的图片是我从网上找的坤坤手办,用Photoshop抠出来的,在嘴部增加一个黑色圆圈,代表张嘴。再加上一个气泡框用来显示文字,图片资源就搞定了。

声音资源则是从网上找到坤坤本人的采访音频,截取出来对应的声音片段即可。

代码原理比较简单,主要基于pynput库,这个库可以监测和模拟键盘和鼠标输入,我们用这个库来实现对键盘输入的监控。

from pynput.keyboard import Listener, GlobalHotKeys, Key
class KeyBoardLister():def __init__(self, on_press_func, on_release_func, hot_keys_func_map=None):self.on_press = on_press_funcself.on_release = on_release_func# 开启热键监控if hot_keys_func_map is not None:self.start_monitor_hotkey(hot_keys_func_map)self.start_monitor_keyboard()# 键盘监测def start_monitor_keyboard(self):self.listener = Listener(on_press=self.on_press, on_release=self.on_release)self.listener.start()# 热键监控-非阻塞def start_monitor_hotkey(self, hot_keys_func_map):h = GlobalHotKeys(hot_keys_func_map)h.start()

gui采用pyqt,摁下键盘,显示张嘴小人,松开键盘,显示闭嘴小人,这样就可以实现说话的效果。

def set_char(self, ch):if ch is None:returnif ch in self.ch2audio:self.play_radio(self.ch2audio[ch])if ch == "j" or ch == "J":ch = "只因"# 设置字母if len(ch) == 1:# 显示字母font = QtGui.QFont()font.setFamily("微软雅黑")font.setPixelSize(35)font.setBold(True)self.lab_content.setFont(font)self.lab_content.setStyleSheet("color:black;")self.lab_content.move(40, 28)else:# 显示字母font = QtGui.QFont()font.setFamily("微软雅黑")font.setPixelSize(25)font.setBold(True)self.lab_content.setFont(font)self.lab_content.setStyleSheet("color:black;")self.lab_content.move(28, 28)self.lab_content.setText(ch)self.lab_content.adjustSize()# 张嘴self.lab.setPixmap(QtGui.QPixmap(resource_path(os.path.join("imgs", "cai2.png"))))# 长时间没有触发则要回归到最初状态def reset_char(self):# 清除文字self.lab_content.setText("")self.lab_content.adjustSize()# 闭嘴self.lab.setPixmap(QtGui.QPixmap(resource_path(os.path.join("imgs", "cai1.png"))))

当键盘匹配到特定输入时,就会播放对应音频,包括“jntm”四个字母,以及摁下快捷键“ctrl+j”时会播放“你干嘛”。

播放音频用的库是playsound库,这里要注意播放音频需要新开一个子线程,否则会阻塞主线程继续监听键盘。

# 开线程放音乐,避免阻断主流程,实现可以同时放多个radio
def play_radio(self, path):t = threading.Thread(target=playsound.playsound, args=(path,))t.start()

短短200行代码实现的坤音键盘,你还不来试试?

基于Python监测键盘输入并发出声音的坤音键盘相关推荐

  1. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入

    大家可能知道,有的情形下,如果我们需进行自动化操作的应用程序不提供相对应的的接口,就难以通过Python直接调用API来做到自动化.在此类情形下,Python也并非压根没有办法,我们可以通过模拟键盘和 ...

  2. JAVA读取键盘输入的多行数据_java读取键盘输入

    从键盘流向内存的数据流 C. 从键盘流向显示器的数据流 D. 从网络流向显示器的数据流 2.Java 语言中提供输入输出流的包是( d ) A. java.sql B. java....... 7 S ...

  3. c语言从键盘输入一个整数判断是否为素数,键盘输入一个正整数,程式设计判断其是否为素数(即质数)...

    键盘输入一个正整数,程式设计判断其是否为素数(即质数)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 键盘输入一个正整数 ...

  4. linux shell 键盘输入 $,linuxshell在while中用read从键盘输入的实现

    系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功.由于Stream只有32bit,安装Stream时也安装了大量32bit的库.删除Stream后,这些 ...

  5. java从键盘输入字符串并求长度_java从键盘输入字符串的方法

    java从键盘输入字符串的方法 发布时间:2020-06-29 09:15:07 来源:亿速云 阅读:142 作者:Leah 本篇文章为大家展示了java从键盘输入字符串的方法,代码简明扼要并且容易理 ...

  6. 坤音键盘(ikun专用)

    坤音键位说明 (下图第一个字母对应的是26键的键位,想听哪个按哪个.后面的数字代表时长,单位:秒) 在右下角托盘里面可以右键关闭 ps:执行后桌面会出现一个ikun精灵,只要找一个能输入内容的地方,按 ...

  7. 怎样在python代码中输入π_鼠标自动点击、键盘自动输入?几行Python代码搞定

    相信我,你以后一定会用到.实在不行,你先收藏,做个收藏家,等拿出来,就值钱了. 第一步:安装并导入相关模块 只需要安装PyUserInput,如下: pip install PyUserInput 如 ...

  8. 求 s=a+aa+ aaa+ aaaa +aaaaa+........的值,a是从键盘输入的,项数也为键盘输入

    总结:这道题目.主要是那个位数,需要*10, while(i<f){ x+=y;//决定位数上的那个数 sum+=x//求和 y*10=y;//决定位数 } package com.b;impo ...

  9. java键盘输入一个数_Java如何实现从键盘输入一个数?

    展开全部 1.导util包 2.用Scanner的静态方法接收2次数据 3.判断,打印32313133353236313431303231363533e59b9ee7ad943133336338343 ...

最新文章

  1. UVa 729 The Hamming Distance Problem【枚举排列】
  2. 009_Raphael动画
  3. 在Qt中如何使用QtDesigner创建的UI文件(一) (转)
  4. Ocean的礼物(线段树单点修改)
  5. Angular应用的index.html
  6. http --- http与https相关概念小结
  7. 小程序制作预算_小程序商城制作多少钱
  8. 2004年9月全国计算机等级考试二级C语言笔试试题及答案
  9. java中super和this_Java中this和super的用法总结
  10. 《网络是怎样连接的》笔记
  11. 图像特征提取:Sobel边缘检测
  12. 在浏览器输入URL会发生什么?
  13. 【matlab】clc,close,close all,clear,clear all作用
  14. win10 hao123劫持html文件,Win10 edge浏览器主页被hao123劫持怎么解决?
  15. 易语言大漠前台切换多开模板教程
  16. 1031 查验身份证 (15 分)
  17. NRFL2401学习
  18. 使用Python获取股票的报表数据
  19. 零基础小白复现Java 若依项目
  20. SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎

热门文章

  1. 汽车信息安全系列-3.TI HSM笔记(更新中)
  2. access、trunk、vlan
  3. 项目研发管理实施经验谈(1)
  4. 相机标定(三)——手眼标定
  5. elasticsearch 的分词
  6. Unity声音 Sound (圣典篇)
  7. 基于asp.net房屋按揭贷款管理系统
  8. 应用程序日志管理工具
  9. Warning: Static member accessed via instance reference
  10. libpng warning iCCP 错误处理方法