본문 바로가기

Biusiness Insight/Data Science

[구글 클라우드] 음성 처리 API 활용 예제 (Speech API)

반응형

source : GCP qwiklabs

 

Google Cloud Shell 활성화하기

1. GCP Console의 오른쪽 상단 툴바에서 Cloud Shell 열기 버튼 클릭

 

2. 계속(Continue) 클릭

 

결과 화면 :

 

계정 목록 조회

gcloud auth list

 

출력:

Credentialed accounts: - <myaccount>

@<mydomain>.com (active)

출력 예:

Credentialed accounts: - google1623327_student@qwiklabs.net

 

프로젝트 ID 목록 조회

gcloud config list project

 

출력:

[core] project = <project_ID>

 

출력 예:

[core] project = qwiklabs-gcp-44776a13dea667a6

 

 

API 키 만들기

Speech API로 요청을 전송하기 위해 curl을 사용할 것이므로, 요청 URL에 전달할 API 키를 생성해야 함

 

1. 탐색 메뉴 > API 및 서비스 > 사용자 인증 정보 클릭

 

2. 사용자 인증 정보 만들기 클릭

 

3. 드롭다운 메뉴에서 API 키를 선택

 

- 방금 생성한 키를 복사합니다.

 

** 각 요청에 API 키의 값을 삽입하지 않아도 되도록 API 키를 환경 변수로 저장 **

4. ssh를 통해 프로비저닝되는 인스턴스에 연결

5. 탐색 메뉴를 열고 Compute Engine을 선택

결과 화면 : 프로비저닝된 Linux 인스턴스가 표시됨

 

6. SSH 버튼 클릭 > 대화형 셸로 이동

7. 명령줄에서 아래 내용을 입력 (<YOUR_API_KEY>를 방금 복사한 키로 변경하여 수행)

export API_KEY=<YOUR_API_KEY>

 

 

Speech API 요청 만들기

※ 참고: Google Cloud Storage에서 제공되는 미리 녹음된 파일 사용(gs://cloud-samples-tests/speech/brooklyn.flac). Speech API로 전송하기 전에 여기에서 이 파일 재생 가능

 

1. SSH 명령줄에서 request.json을 생성 (Speech API에 대한 요청을 빌드 시 이 파일 사용)

touch request.json

 

2. 자주 사용하는 명령줄 편집기(nano, vim, emacs) 또는 gcloud를 사용하여 request.json 오픈

vi request.json

 

3. 샘플 오디오 파일의 uri 값을 사용하여 request.json 파일 아래 내용 추가

{ 
  "config": { 
     "encoding":"FLAC", 
     "languageCode": "en-US"
  },
  "audio": { 
     "uri":"gs://cloud-samples-tests/speech/brooklyn.flac" 
  } 
}

 

- 본문에는 config  audio 객체가 있음

- config에서, 요청을 처리하는 방법을 Speech API에 알려줌

- encoding 매개변수는 API로 파일이 전송되는 동안 사용자가 사용하는 오디오 인코딩 유형을 API에 알려줌. FLAC는 .raw 파일에 대한 인코딩 유형임 (참고 : 인코딩 유형 문서)

- config 객체에 추가할 수 있는 다른 매개변수가 있지만, encoding만 필수 매개변수

- audio 객체에서, Cloud Storage에 있는 오디오 파일의 URI를 API에 전달

 

 

Speech API 호출하기

curl 명령어를 사용하여 API 키 환경 변수와 함께 요청 본문을 Speech API에 전달 (모두 단일 명령줄에 포함)

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json \ 
"https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

 

출력 : 

{ 
  "results": [ 
    { 
      "alternatives": [ 
        { 
          "transcript": "how old is the Brooklyn Bridge", 
          "confidence": 0.98267895 
        } 
      ] 
    } 
  ] 
}

 

- transcript 값은 Speech API가 오디오 파일에서 변환한 텍스트를 반환

- confidence 값은 API가 오디오를 텍스트로 얼마나 정확히 변환했는지를 나타냄

- 위 요청에서 syncrecognize 메서드를 호출했음을 확인 가능

- Speech API는 동기식 및 비동기식 텍스트 변환을 모두 지원

- 이 예제에서는 전체 오디오 파일을 전송했지만, 사용자가 말하고 있는 동안 음성을 텍스트로 변환하려면 syncrecognize 메서드 사용 가능

 

result.json 파일에 응답 저장

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json \ 
"https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}" > result.json

 

반응형