我目前正在尝试创建一个简单的python脚本来创建语音数据。键被按下时记录,键被释放时停止
与脚本有关的想法是,开始使用pyaudio
进行录制,当按住某个键时,并在释放该键时停止录制。
我现在有点糊涂,我应该如何实现while key hold/stop at release mechanism.
,我发现这个库keyboard
,但没有什么意义是否载有 这种形式的机制呢?
我目前正在尝试创建一个简单的python脚本来创建语音数据。键被按下时记录,键被释放时停止
与脚本有关的想法是,开始使用pyaudio
进行录制,当按住某个键时,并在释放该键时停止录制。
我现在有点糊涂,我应该如何实现while key hold/stop at release mechanism.
,我发现这个库keyboard
,但没有什么意义是否载有 这种形式的机制呢?
根据函数库“keyboard”中的this code来源,它确实提供了这种机制来检测当前是否按下某个键。所以你可以做一个while循环来检查用户是否释放了该密钥。
#/usr/bin/python
# file: __init__.py
# ...
def is_pressed(key):
"""
Returns True if the key is pressed.
is_pressed(57) -> True
is_pressed('space') -> True
is_pressed('ctrl+space') -> True
"""
_listener.start_if_necessary()
if is_number(key):
return key in _pressed_events
elif len(key) > 1 and ('+' in key or ',' in key):
parts = canonicalize(key)
if len(parts) > 1:
raise ValueError('Cannot check status of multi-step combination ({}).'.format(key))
return all(is_pressed(part) for part in parts[0])
else:
for event in _pressed_events.values():
if matches(event, key):
return True
return False
'而keyboard.is_pressed(“空间”):' 给我的错误信息: '提高导入错误(“你必须以root使用此') ImportError:你必须是root用户才能在linux上使用这个库.' 并以sudo的形式运行它给我错误信息: 'IOError:[Errno 1] Operation not permitted:'/ dev/uinput'' –
'keyboard'似乎只能用于windows和linux。任何可以在Linux上运行的任何东西。 –
@open_ey,你在使用MacOS吗? – Sajuuk
查看[this]的评论(https://stackoverflow.com/questions/40649634/determine-length-of-keypress-in-python)的问题。这可能会帮助你。 –
只是看起来像一个有点吃不消这个简单的任务@ P.Siehr –