<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EC%9D%8C%EC%84%B1%EC%9D%B8%EC%8B%9D_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8</id>
	<title>파이썬 음성인식 프로그램 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EC%9D%8C%EC%84%B1%EC%9D%B8%EC%8B%9D_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EC%9D%8C%EC%84%B1%EC%9D%B8%EC%8B%9D_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&amp;action=history"/>
	<updated>2026-04-04T07:27:36Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EC%9D%8C%EC%84%B1%EC%9D%B8%EC%8B%9D_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&amp;diff=2261&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: == Python을 이용해 음성 인식으로 명령어를 실행하는 프로그램 ==  === 음성 인식 명령어 실행 프로그램 == # Python의 SpeechRecognition 라이브러리 사용하여 음성을 텍스트로 변환 # subprocess 모듈을 사용하여 특정 명령어를 실행 === 1단계: 필요한 라이브러리 설치 === # 명령 프롬프트나 터미널에서 다음 명령어 실행 #:&lt;source lang=python&gt; pip install SpeechRecognition PyAudio &lt;/source&gt; #:* Spee...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=%ED%8C%8C%EC%9D%B4%EC%8D%AC_%EC%9D%8C%EC%84%B1%EC%9D%B8%EC%8B%9D_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8&amp;diff=2261&amp;oldid=prev"/>
		<updated>2025-07-29T10:39:04Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == Python을 이용해 음성 인식으로 명령어를 실행하는 프로그램 ==  === 음성 인식 명령어 실행 프로그램 == # Python의 SpeechRecognition 라이브러리 사용하여 음성을 텍스트로 변환 # subprocess 모듈을 사용하여 특정 명령어를 실행 === 1단계: 필요한 라이브러리 설치 === # 명령 프롬프트나 터미널에서 다음 명령어 실행 #:&amp;lt;source lang=python&amp;gt; pip install SpeechRecognition PyAudio &amp;lt;/source&amp;gt; #:* Spee...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Python을 이용해 음성 인식으로 명령어를 실행하는 프로그램 ==&lt;br /&gt;
&lt;br /&gt;
=== 음성 인식 명령어 실행 프로그램 ==&lt;br /&gt;
# Python의 SpeechRecognition 라이브러리 사용하여 음성을 텍스트로 변환&lt;br /&gt;
# subprocess 모듈을 사용하여 특정 명령어를 실행&lt;br /&gt;
=== 1단계: 필요한 라이브러리 설치 ===&lt;br /&gt;
# 명령 프롬프트나 터미널에서 다음 명령어 실행&lt;br /&gt;
#:&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
pip install SpeechRecognition PyAudio&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
#:* SpeechRecognition: 음성 인식을 위한 핵심 라이브러리입니다. Google Web Speech API를 포함한 다양한 음성 인식 엔진을 지원합니다.&lt;br /&gt;
#:* PyAudio: 마이크 입력을 처리하기 위해 SpeechRecognition이 필요로 하는 라이브러리&lt;br /&gt;
&lt;br /&gt;
=== 2단계: 코드 작성 ===&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
import speech_recognition as sr&lt;br /&gt;
import subprocess&lt;br /&gt;
import platform&lt;br /&gt;
&lt;br /&gt;
def recognize_speech_from_mic(recognizer, microphone):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    마이크로부터 음성을 인식합니다.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    with microphone as source:&lt;br /&gt;
        recognizer.adjust_for_ambient_noise(source) # 주변 소음 조정&lt;br /&gt;
        print(&amp;quot;말씀해주세요!&amp;quot;)&lt;br /&gt;
        audio = recognizer.listen(source)&lt;br /&gt;
&lt;br /&gt;
    response = {&lt;br /&gt;
        &amp;quot;success&amp;quot;: True,&lt;br /&gt;
        &amp;quot;error&amp;quot;: None,&lt;br /&gt;
        &amp;quot;transcription&amp;quot;: None&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    try:&lt;br /&gt;
        response[&amp;quot;transcription&amp;quot;] = recognizer.recognize_google(audio, language=&amp;quot;ko-KR&amp;quot;) # 한국어 음성 인식&lt;br /&gt;
    except sr.RequestError:&lt;br /&gt;
        # API에 연결할 수 없는 경우&lt;br /&gt;
        response[&amp;quot;success&amp;quot;] = False&lt;br /&gt;
        response[&amp;quot;error&amp;quot;] = &amp;quot;API에 연결할 수 없습니다.&amp;quot;&lt;br /&gt;
    except sr.UnknownValueError:&lt;br /&gt;
        # 음성을 이해할 수 없는 경우&lt;br /&gt;
        response[&amp;quot;error&amp;quot;] = &amp;quot;음성을 이해할 수 없습니다.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return response&lt;br /&gt;
&lt;br /&gt;
def execute_command(command_text):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    인식된 텍스트에 따라 명령어를 실행합니다.&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    command_text = command_text.lower() # 소문자로 변환하여 비교 용이하게&lt;br /&gt;
&lt;br /&gt;
    if &amp;quot;메모장 열기&amp;quot; in command_text:&lt;br /&gt;
        print(&amp;quot;메모장을 엽니다.&amp;quot;)&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:&lt;br /&gt;
            subprocess.Popen([&amp;quot;notepad.exe&amp;quot;])&lt;br /&gt;
        elif platform.system() == &amp;quot;Darwin&amp;quot;: # macOS&lt;br /&gt;
            subprocess.Popen([&amp;quot;open&amp;quot;, &amp;quot;-a&amp;quot;, &amp;quot;TextEdit&amp;quot;])&lt;br /&gt;
        else: # Linux&lt;br /&gt;
            subprocess.Popen([&amp;quot;gedit&amp;quot;])&lt;br /&gt;
    elif &amp;quot;계산기 열기&amp;quot; in command_text:&lt;br /&gt;
        print(&amp;quot;계산기를 엽니다.&amp;quot;)&lt;br /&gt;
        if platform.system() == &amp;quot;Windows&amp;quot;:&lt;br /&gt;
            subprocess.Popen([&amp;quot;calc.exe&amp;quot;])&lt;br /&gt;
        elif platform.system() == &amp;quot;Darwin&amp;quot;:&lt;br /&gt;
            subprocess.Popen([&amp;quot;open&amp;quot;, &amp;quot;-a&amp;quot;, &amp;quot;Calculator&amp;quot;])&lt;br /&gt;
        else:&lt;br /&gt;
            subprocess.Popen([&amp;quot;gnome-calculator&amp;quot;])&lt;br /&gt;
    elif &amp;quot;안녕&amp;quot; in command_text:&lt;br /&gt;
        print(&amp;quot;안녕하세요! 무엇을 도와드릴까요?&amp;quot;)&lt;br /&gt;
    elif &amp;quot;종료&amp;quot; in command_text:&lt;br /&gt;
        print(&amp;quot;프로그램을 종료합니다.&amp;quot;)&lt;br /&gt;
        return False&lt;br /&gt;
    else:&lt;br /&gt;
        print(f&amp;quot;&amp;#039;{command_text}&amp;#039; 명령어는 알 수 없습니다.&amp;quot;)&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    recognizer = sr.Recognizer()&lt;br /&gt;
    microphone = sr.Microphone()&lt;br /&gt;
&lt;br /&gt;
    print(&amp;quot;음성 인식 프로그램이 시작되었습니다. &amp;#039;종료&amp;#039;라고 말하면 종료됩니다.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    running = True&lt;br /&gt;
    while running:&lt;br /&gt;
        speech = recognize_speech_from_mic(recognizer, microphone)&lt;br /&gt;
&lt;br /&gt;
        if speech[&amp;quot;success&amp;quot;]:&lt;br /&gt;
            print(f&amp;quot;인식된 명령어: {speech[&amp;#039;transcription&amp;#039;]}&amp;quot;)&lt;br /&gt;
            running = execute_command(speech[&amp;quot;transcription&amp;quot;])&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;오류: {speech[&amp;#039;error&amp;#039;]}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        print(&amp;quot;-&amp;quot; * 30)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{결론&lt;br /&gt;
|내용=* 코드 설명&lt;br /&gt;
* import 문:&lt;br /&gt;
* speech_recognition as sr: 음성 인식을 위한 라이브러리입니다.&lt;br /&gt;
* subprocess: 외부 프로그램을 실행하기 위한 모듈입니다.&lt;br /&gt;
* platform: 현재 운영체제를 확인하기 위해 사용됩니다.&lt;br /&gt;
* recognize_speech_from_mic(recognizer, microphone) 함수:&lt;br /&gt;
* 마이크로부터 음성을 받아들이고 텍스트로 변환하는 역할을 합니다.&lt;br /&gt;
* recognizer.adjust_for_ambient_noise(source): 마이크가 주변 소음을 파악하여 인식률을 높여줍니다.&lt;br /&gt;
* recognizer.listen(source): 사용자의 음성 입력을 기다립니다.&lt;br /&gt;
* recognizer.recognize_google(audio, language=&amp;quot;ko-KR&amp;quot;): Google Web Speech API를 사용하여 음성을 텍스트로 변환합니다. language=&amp;quot;ko-KR&amp;quot;로 한국어를 지정합니다.&lt;br /&gt;
* try-except 블록을 사용하여 API 연결 오류나 음성 인식 실패를 처리합니다.&lt;br /&gt;
* execute_command(command_text) 함수:&lt;br /&gt;
* 인식된 텍스트(command_text)를 기반으로 특정 명령어를 실행합니다.&lt;br /&gt;
* command_text.lower(): 대소문자 구분 없이 명령어를 처리하기 위해 소문자로 변환합니다.&lt;br /&gt;
* if &amp;quot;메모장 열기&amp;quot; in command_text:와 같이 특정 키워드가 포함되어 있는지 확인합니다.&lt;br /&gt;
* subprocess.Popen([]): 이 함수를 사용하여 운영체제에 맞는 프로그램을 실행합니다.&lt;br /&gt;
* Windows: notepad.exe, calc.exe&lt;br /&gt;
* macOS: open -a TextEdit, open -a Calculator&lt;br /&gt;
* Linux: gedit, gnome-calculator (설치되어 있어야 함)&lt;br /&gt;
* &amp;quot;종료&amp;quot; 명령어가 인식되면 False를 반환하여 메인 루프를 종료합니다.&lt;br /&gt;
* 메인 실행 블록 (if __name__ == &amp;quot;__main__&amp;quot;:):&lt;br /&gt;
* sr.Recognizer()와 sr.Microphone() 객체를 생성합니다.&lt;br /&gt;
* 무한 루프(while running:)를 통해 지속적으로 음성을 인식하고 명령어를 실행합니다.&lt;br /&gt;
* recognize_speech_from_mic 함수를 호출하여 음성을 인식하고, 결과에 따라 execute_command를 호출합니다.&lt;br /&gt;
&lt;br /&gt;
===실행 방법 ===&lt;br /&gt;
* 위 코드를 voice_command.py와 같은 이름으로 저장합니다.&lt;br /&gt;
* 터미널이나 명령 프롬프트에서 해당 파일이 있는 디렉토리로 이동합니다.&lt;br /&gt;
* 다음 명령어를 실행합니다:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
   python voice_command.py&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* &amp;quot;말씀해주세요!&amp;quot;라는 메시지가 뜨면 마이크에 대고 &amp;quot;메모장 열기&amp;quot;, &amp;quot;계산기 열기&amp;quot;, &amp;quot;안녕&amp;quot;, &amp;quot;종료&amp;quot; 등의 명령어를 말해보세요.&lt;br /&gt;
&lt;br /&gt;
=== 추가 기능 및 개선 사항 (고급)===&lt;br /&gt;
* 더 많은 명령어 추가: execute_command 함수에 웹사이트 열기, 파일 탐색기 열기 등 다양한 명령어를 추가할 수 있습니다.&lt;br /&gt;
* 음성 비서 이름 설정: &amp;quot;헤이 구글&amp;quot;처럼 특정 키워드를 말해야만 반응하도록 설정할 수 있습니다. (예: &amp;quot;컴퓨터야 메모장 열어줘&amp;quot;)&lt;br /&gt;
* GUI 구현: PyQT, Tkinter 등의 라이브러리를 사용하여 시각적인 인터페이스를 제공할 수 있습니다.&lt;br /&gt;
* 오프라인 음성 인식: Vosk, CMU Sphinx와 같은 오프라인 음성 인식 엔진을 사용하여 인터넷 연결 없이도 동작하도록 만들 수 있습니다.&lt;br /&gt;
* 사용자 정의 명령어 학습: 특정 패턴을 학습하여 사용자가 자신만의 명령어를 등록할 수 있도록 만들 수 있습니다.&lt;br /&gt;
&lt;br /&gt;
[[category:python]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>