-
Google Cloud Speech-to-Text(STT) API 초기설정및 Python으로 사용하기CS/졸업 프로젝트(Duk to Me) 2023. 6. 20. 01:26반응형
Python으로 Speech-to-Text API를 사용할 예정이기 때문에 Local 환경에 Python이 설치되어 있어야 하고, Python 가상환경을 만들어 작업할 것이다.
¶ Python 가상환경 만들기
① Local에 Python이 설치되어 있는지 확인하기 위해 터미널 창에 명령어 입력하기
python --version
설치되어 있다면 Python 버전이 잘 출력될 것이다.
② Python 가상환경을 만들 작업 폴더로 경로 이동하여 가상환경 생성하기
python -m venv [venv_name] (대괄호 안에는 가상환경 이름을 설정, 실습에서는 'speech_to_text_demo'로 설정)
해당 경로에 가상환경 이름으로 된 폴더가 만들어지면 성공.
③ 가상환경 폴더로 이동하여 가상환경 활성화시키기
cd Scripts (가상환경 활성화 파일이 있는 폴더로 이동)
activate.bat (가상환경 활성화 명령어)
deactivate (가상환경 비활성화 명령어)가상환경이 활성화되면 커맨드라인 앞쪽에 괄호 안으로 가상환경 이름이 나타난다.
④ Google Cloud Speech 사용을 위한 Packag들 설치하기
pip install google-cloud-speech
가끔 설치된 Package들이 IDE에 반영되지 못해 오류가 날 때가 있는데, 그럴 때는 IDE에서 직접 수동으로 Package들을 다시 설치해야 한다.
실습에서는 Pycharm IDE를 사용하므로 Pycharm안에서 수동으로 Package를 설치하는 방법은 다음과 같다.
File > Settings > Python Interpreter > '+' > 설치할 Package를 검색하여 설치
이제 Google Cloud Console창(https://console.cloud.google.com/welcome/new?project=thorn-technologies-public)에서 작업할 프로젝트를 생성해야 한다.
¶ Google Cloud Project 생성하기
① Console창에서 Project를 클릭, 새 프로젝트 클릭
② Project 이름 설정(실습에서는 'GoogleSpeechDemo'로 설정)하고 '만들기' 클릭
③ 생성된 Project를 Select하여 Navigation Menu에서 Library로 들어간다.
④ Library 검색창에 'Speech to Text'를 검색하여 Enable 시킨다.
이때 해당 API는 유료이므로 Enable할 때, Google 계정에 Billing 정보가 입력되어 있다면, 'Link a billing account'를 클릭. 안되어 있다면, Billing 결제정보를 새롭게 입력해야 한다.
⑤ Service Account를 생성하기 위해 '사용자 인증 정보'로 들어간다.
⑥ '+ 사용자 인증 정보 만들기' 에서 '서비스 계정' 클릭
⑦ 서비스 계정 이름 설정하고 나머지 설정들은 임의로 설정하고 완료하기
⑧ 생성된 Service Account(speech demo)로 들어가서 'Key'에서 JSON Key 파일을 생성한다.
⑨ 이렇게 내려받은 JSON 파일을 Python 가상환경 작업폴더로 옮겨온다.
이걸로 Local에서 Python으로 Speech-to-Text API사용을 위한 기초작업을 마쳤다.
이제 Python script로 Speech-to-Text API를 사용해보자.
① JSON 파일이 있는 Python 가상환경 폴더에 테스트할 음성파일(실습에서는 60초 미만의 wav파일 사용)과 'demo1.py'파일을 만들어 위치시킨다.
② 'demo1.py' Script 파일을 다음과 같이 작성한다.
import io from google.oauth2 import service_account from google.cloud import speech client_file = 'speech_demo.json' # json파일명 넣기 credentials = service_account.Credentials.from_service_account_file(client_file) client = speech.SpeechClient(credentials=credentials) # Load the audio file audio_file = 'audio sample.wav' # 테스트용 오디오파일명 넣기 with io.open(audio_file, 'rb') as f: content = f.read() audio = speech.RecognitionAudio(content=content) config = speech.RecognitionConfig( encoding = speech.RecognitionConfig.AudioEncoding.LINEAR16, sampe_rate_hertz = 48000, Language_code = 'en-US' ) response = client.recognize(config=config,audio=audio) print(response)
샘플 오디오 파일에 따라서 인코딩 정보를 맞춰줘야지 잘 인식한다. (링크참조:https://cloud.google.com/speech-to-text/docs/reference/rest/v1/RecognitionConfig)
인코딩 정보까지 잘 맞추어 문제없다면 결과창에 샘플 오디오 파일에 녹음된 음성이 잘 인식되어 텍스트로 결과가 출력될거다.
Reference
반응형'CS > 졸업 프로젝트(Duk to Me)' 카테고리의 다른 글
Unity에서 여러 Scene으로부터 점수를 합산하여 내는 점수체계 C# Script 코드 쓰기 (0) 2023.08.16 [이슈관리] Unity에서 Google Speech API Asset의 C# Script 고치기 (0) 2023.06.26 [이슈관리] Google Cloud Text-to-Speech(TTS) API, 목소리 성별 바꾸기 (0) 2023.06.26 Google Cloud Text-to-Speech(TTS) API, Python으로 사용하기 (0) 2023.06.20 Google Cloud Speech API 개념및 기능 설명 (0) 2023.06.19