如何解决执行此程序后删除多余的零
我编写了这段代码,当振幅增加超过阈值时,它会关闭麦克风。这用于在不和谐的情况下使我的麦克风静音,但是,我想安全地退出它,并且当我“ctrl-c”时。它为终端提供了额外的“零”,因为 NUM0 是我的热键。虽然,它可以通过使用任何其他热键来解决,但我想让它更加用户友好。所以,请提出一些方法来消除多余的字符情况,并且请提供一些其他方法来结束无限 while 循环。下面,我附上了代码进行测试。
import pyaudio
import numpy as np
import pyautogui
CHUNK = 2**11
RATE = 48016
p=pyaudio.PyAudio()
stream=p.open(format=pyaudio.paInt16,channels=1,rate=RATE,input=True,frames_per_buffer=CHUNK)
flag = 0
try:
while 1:
data = np.fromstring(stream.read(CHUNK),dtype=np.int16)
peak=np.average(np.abs(data))*2
bars=1000*peak/2**16
if bars>1:
pyautogui.keyDown("NUM0")
flag+=1
else:
if flag>0:
pyautogui.keyUp("NUM0")
flag = 0
except KeyboardInterrupt:
print('Interrupted')
stream.stop_stream()
stream.close()
p.terminate()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。