brunch

You can make anything
by writing

C.S.Lewis

by 배울장 Jul 12. 2018

당신의 귀를 코딩하라

파이썬을 이용한 음성인식 구현하기

장황하게 음성인식 역사를 설명하거나 어떤원리로 이루어지는지 설명하지 않겠다. 간단하게 음성인식이 뭐고 딥러닝을 이용하여 이미 구현된 구글 음성인식 API를 파이썬으로 작성해보고 실행하는 튜토리얼을 작성했다.


음성인식은 컴퓨터가 당신이 하는 말을 알아듣는 행위를 말한다. 어떻게 알아듣는지가 중요한데, 보통 '내 말 알아들었어?' 의 의미는 이해를 했냐는 물음인데 음성인식에서 알아듣는 다는 것은 그저 글로 변환을 해줌을 의미한다. 스피치 투 텍스트(STT) 라는 말이다. 사람에게는 쉬운일이지만 컴퓨터에겐 쉽지않다. 그렇다고 우리가 구현하기 어려운 것은 아니다. 지금 바로 당신도 구현할 수 있다.


먼저 파이썬을 설치한다. 파이썬은 2 버전과 3 버전이 모두 활성화 되어있다. 3이 물론 더 최근에 나온 것이지만 우리도 윈도우 10이 나왔을 때 윈도우 7을 쓰는 사람이 많지 않았는가? 비슷한 맥락이다. 우리는 3버전을 설치하자. 이 글을 작성하는 현재 최신버전은 3.7.0 버전이다. 최신버전은 두려우니 3.6.6버전을 사용하도록하자.

파이썬 홈페이지


아직도 업데이트 되고있는 2.7 버전


버전을 잠깐 설명하자면 맨처음 숫자는 메이저 업데이트 버전이고 (2.7.15에서 2를 의미) 두번째 숫자는 메이저보다는 조금 마이너한 업데이트(2.7.15에서 7) 마지막 숫자는 더 마이너 업데이트이다.(2.7.15에서 15) 보통 맨 처음 숫자가 바뀌면 코드가 호환되지 않는다. 코드를 다시 작성해야한다는 의미다.


2.7 버전은 무려 15번이나 마이너 업데이트가 있었다. 그 만큼 많은 사람들에게 사랑받고 있다는 증거이다. 우리는 3.7 버전과 같이 업데이트 된 3.6.6 버전을 사용한다.


당신의 운영체제에 맞는 것으로 다운로드 받도록 하자.


만약 우분투 리눅스를 사용한다면 apt-get을 이용하여 파이썬을 설치할 수 있다. 윈도우 혹은 맥이라면 해당 설치파일을 받고 설치할 수 있다. 만약 설치하는 도중 PATH를 환경변수에 추가할거냐 그런 물음이 있다면 망설이지 말고 체크하면 된다.


이제 터미널을 실행하자. 윈도우는 cmd, 맥과 리눅스는 터미널이다. 파이썬 버전이 잘 설치되었나 확인하는 명령어는 다음과 같다.


python3 --version


3.6.6이 나타난다면 성공이다. 당신의 컴퓨터에 파이썬이 설치되었다. 터미널에 복붙이 잘 안되는 분들이 계실텐데 쉬프트를 같이 눌러주면 된다. (ctrl + shift + v 붙여넣기)


만약 나타나지 않았다면 환경변수에 python이 설치된 path를 추가해주어야 하고, 다른 버전이 있다면 다른 버전을 삭제하고 다시 시도하길 바란다. path 추가는 구글이 아닌 네이버에서도 쉽게 한글문서를 찾을 수 있다.


그리고 파이썬으로 미리 작성된 코드의 집합인 패키지를 쉽게 받을 수 있는 pip3를 설치하도록 하자. python을 설치하면서 pip도 받을거냐 물어본다면 다운받도록 하자. 그렇지 않았다면 pip3를 설치해줘야 한다. 우분투 리눅스라면 apt-get을 이용하여 설치할 수 있고 맥 혹은 윈도우에서는 python을 설치하면서 설치 할 수 있을 것이다. 만약 '그런거 안 떴는데?' 혹은 '아 미리 써놓지 설치하고 읽었네' 이런 분들은 핖 홈페이지에 방문해서 get-pip.py를 받고 cd 명령어를 통해 해당 폴더에 접속한 뒤 python3 get-pip.py를 실행하여 pip을 설치하도록 하자. ( cd ..     //상위폴더 ) ( cd   폴더명      // 폴더명으로 이동 ) 뭔가 permission을 걸고 물어지면 맨앞에 sudo 를 붙여주자. ( sudo python3 get-pip.py )


이제 개발환경을 만들어줄텐데 virtualenv를 사용할 것이다. 아나콘다라는 패키지를 사용할 수도 있고 공부할 때는 jupyter notebook이 편리하지만 우리는 일단 음성인식을 빠르게 돌려보도록 하자. 만약 나는 이거 잠깐 해볼거였어 개발엔 큰 관심없어 하시는 분들은 개발환경 부분을 건너뛰어도 좋다.


개발환경을 설정하는 이유는 개발하는 프로젝트 마다 사용하는 패키지들이 다르기 때문에 아무런 패키지도 깔리지 않은 깔끔한 파이썬을 새로 만들어준다고 생각하면 좋다. 파이썬 버전을 기준으로 개발환경이 설정되며 3.6.6 을 이용하여 만들 수도 있고 3.5.4를 이용하여 만들 수도 있다. 한 컴퓨터에 많은 버전의 파이썬을 설치할 수 있다는 말이다. 지금 다루기엔 너무 린하지 않기에 넘어가도록 하자.


자 이제 진짜 개발환경을 만들자. 우선 폴더를 하나 만들자. 아무데나 만들면 된다. 뭐 시스템폴더나 그런데만 하지말자. 윈도우라면 C드라이브에 python_project 이런식으로 만들자. 맥이나 리눅스라면 그냥 홈폴더에 python_project 를 mkdir 명령어로 만들어주자.(cd ~    // 홈폴더로 이동) ( mkdir python_project  폴더 만들기 )


python3 -m venv python_project/voice


명령어를 입력하여 가상개발환경을 구축하자. 가상 개발환경 실행은


source python_project/voice/bin/activate


로 할 수 있다. 잘 실행되었다면 터미널에서 앞에 (voice) 라는 문구가 생겼을 것이다. 가상환경 끄기는 deactivate 명령어이다. 삭제는 그냥 지워주면 된다. ( rm -r voice    // 해당 폴더 하위폴더까지 삭제 )


자. 이제 진짜 음성인식을 해보자.

파이썬을 우선 켜자.


python3


파이썬 버전이 나오면서

>>>

이런 입력창이 나왔다면 맞는 길을 걷고 있는 것이다.


import speech_recognition as sr


을 치고 엔터를 쳐보자.

노 모듈이라고 뜨는게 정상이다. 우리는 모듈을 설치해볼 것이기 때문이다.

컨트롤 C 혹은 컨트롤 D를 통해 파이썬을 종료해주자. 이제 핖을 써보도록하자.


python3 -m pip install speechrecognition


을 이용하거나 그저 pip3 install speechrecognition을 입력해도 좋다.

또 permission을 가지고 물어진다면 맨 앞에 sudo를 붙여 sudo python3 ~~~ 를 통해 루트권한이라는 치트키를 이용하자.


이제 위에 입력했던 python3 에서 import 구문을 적어보자. 그냥 다음줄로 넘어갔다면 성공이다.


r = sr.Recognizer()


을 입력해주고 엔터를 쳐주자. 우리는 r 이라는 인식기를 생성했다.

음성파일을 이용할 수도 있지만 우리는 더 드라마틱한 신기함을 느끼기 위해 마이크를 사용하도록 하자.


mic = sr.Microphone()


Pyaudio가 설치되어있지 않다고 나타난다면 설치해주자. 컨트롤 C 혹은 컨트롤 D를 통해 파이썬을 종료하고


sudo python3 -m pip install pyaudio


이제는 치트키를 그냥 붙였다. 만약 리눅스나 맥에서 portaudio가 없다고 나타난다면 깔아주도록하자. 맥에서는 brew install portaudio, 리눅스에서는 apt-get install portaudio19-dev. 리눅스는 sudo를 사용해야 할 것이다. brew가 설치되어있지 않다면 맥주공장 홈페이지 참고로 brew는 sudo를 지원하지 않는다. 만약 그래도 실패한다면 구글에 검색하여 험난한 길을 걸어야한다.

자. 왔다갔다를 많이 했다. 이제 파일을 작성해서 더 이상 작성하지 말자.


import speech_recognition as sr

r = sr.Recognizer()

mic = sr.Microphone()

with mic as source:

    audio = r.listen(source)

print(r.recognize_google(audio,language='ko-KR'))


메모장을 하나 열어서 다음과같이 작성하고 다른 이름으로 저장에서  인코딩을 utf-8 로 바꿔준 뒤 voice.py 와같은 확장자가 .py인 파일로 저장하자. 물론 다른 텍스트 에디터로 해도 좋고 맥이나 리눅스라면 vi 혹은 nano로 작성해도 좋다. ( vi voice.py ) ( nano voice.py ) ( 빌트인 텍스트에디터로 파일이름 작성하기 )


그리고 그 파일을 실행하자. 터미널에서의 폴더 안에 voice.py 파일이 있어야 실행된다.


python3 voice.py


그리고 아무말이나 해보자. 진짜 아무말이나.

성공했다. 여러분은 이제 음성인식을 파이썬으로 코딩할 수 있다.


엄청 짧고 간단하게 쓰려고했는데 운영체제에 따라서 하는 방법이 달라서 그런지 지방방송이 길어졌다. 하지만 핵심은 당신이 10줄도 안되는 코드로 음성인식을 구현했다는 것이다. API와 패키지가 있기에 가능한 일이지만 여튼 그걸 사용하는 능력이 중요하지 않겠는가? 이런 튜토리얼이 좋을지 모르겠지만 우선 작성해보았다.

작가의 이전글 심오한 로또 번호 분석
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari