Coding/Python Matlab

키보드 클릭 사운드 내는 파이썬 프로그램

smores 2023. 11. 24. 05:51

애플2 에뮬레이터를 가지고 놀면서 화면은 CRT VGA 로 그럭저럭 추억의 화면을 얻을 수 있었고, 디스크 드라이브가 디스크를 엑세스 하는 소리는 에뮬레이터 중에서 MAME 최신 버전을 사용하여 얻을 수 있었다. 

 

그런데 이 아저씨의 유튜브 쇼츠를 보면 실기의 경우 기계식 키보드의 경쾌한 클릭킹 소리가 역시 큰 추억의 한 부분으로 느껴졌다.

 

https://www.youtube.com/shorts/THNj1nqEEhE

 

 

그래서 키보드 클릭킹 소리를 내 주는 윈도우즈용 무료 앱들을 찾아 헤매다가 그런데로 맘에 드는 프로그램을 하나 찾았다. 한국분이 개발하신 것이다. (좋은 프로그램을 공개해 주셔서 감사합니다 ^^)

 

https://kagamine-rin.com/?p=339

 

컴퓨터로 타이핑하면 소리가 나는 프로그램 Typing Sound

인터넷에 비슷한 걸 찾아봐도 사운드를 못바꾸거나 바꿀수 있으면 하자가 있는게 많아서 직접 만들었습니다. 프로그램 종료를 원하시는경우 시스템 트레이의 아이콘을 우클릭하고 종료를 눌러

kagamine-rin.com

 

기계식 키보드 종류별 소리를 WAV 파일로 여러개 준비해 두셔서 프로그램의 config.ini 에서 셋팅하여 사용할 수 있고, 몇몇 특정 키들에 대해서는 알파벳, 숫자키와 또 다른 소리로 셋팅할 수 있어서 매우 유용하다. 문제는 애플 에뮬레이터를 사용하면서 간혹 필요한 function key 나 다른 키들을 누를때 (예를 들면 메뉴를 호출해서 디스크 이미지를 바꾸거나 할때) 소리가 나지 않아야 하는 경우까지 소리가 다 나버린다는 사실...  결국 내가 원하는 키에서만 소리가 나게 하는 프로그램이 필요한데 무료로 그런걸 찾기 매우 힘들다. 때문에 직접 파이썬으로 만들어 보기로 했다. 어짜피 나야 늘상 파이썬을 쓸 수 있는 환경에서 노니까...

 

필요한 기술은 위의 프로그램에서 제공해 주는 멋진 키보드 타입별 사운드 파일로 소리를 내는 방법과, 백그라운드로 키를 훅킹해서 키 종류에 따라 선별적으로 원하는 작업을 하게 하는 코드이다. 

 

ChatGPT 와 구글신의 힘을 빌어서 간단한 프로그램을 만들어봤다. 잘 작동한다. 소리가 나길 원하는 키도, 키 별 소리 종류도 내 맘대로 고칠 수 있다. 그리고 같은 키를 계속 누르고 있으면 (릴리즈를 안하면) 반복적인 소리가 나는 것도 막을 수 있다. ^^

 

백그라운드로 돌리는 핵심은 pynput 라이브러리. 그리고 윈도우즈에서 WAV 파일 소리를 내 주는 것은 winsound. 일단 나는 윈도우즈만 사용하기에 winsound를 쓰는데, 다른 OS라면 적당히 다른 라이브러리를 사용해야 할 듯.

 

코드는 생각보다 단순하다. prevkey 를 체크해서 같은키를 계속 누르고 있으면 소리를 안내고, 키 릴리즈를 할때 prevkey 를 초기화한다.

 

 

 

위의 소스 스크린샷은 ESC 를 누를때 이 프로그램이 끝나게 되어 있다. 첨부한 파일은 그 부분을 막아놓아서 ESC 키도 제대로 사용할 수 있도록 한 것임.

 

py_keyclicker.zip
0.47MB