ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    반응형
Designed by Tistory.