brunch

매거진 GCP

You can make anything
by writing

C.S.Lewis

by 하이프마크 Dec 23. 2021

GCP : Cloud Speech to Text

GCP


Cloud Speech to Text는 구글의 머신러닝 신경망을 이용해 음성을 텍스트로 변환해주는 API입니다. 최첨단 자동 음성 인식(ASR) 딥 러닝 신경망 알고리즘을 적용해 정확하게 텍스트로 옮길 수 있다는 장점이 있으며 120개 이상의 언어와 방언을 지원하고 있습니다.


이를 통해 실시간 스트리밍에도 사용할 수 있고 미리 녹음한 파일을 텍스트로 옮길 수도 있습니다. 또한 음성 명령 및 제어 기능을 구현할 수도 있습니다. 


Speech-to-Text에는 음성 인식을 위해 세가지 기능을 제공하고 있는데요.  


동기 인식(REST, gRPC) : 주로 1분 이하의 짧은 오디오 파일을 텍스트 처리할 때 사용합니다. 오디오 데이터를 Speech-to-Text API로 보내고, 해당 데이터를 인식하고, 모든 오디오가 처리된 후 결과를 확인할 수 있습니다.

비동기 인식(REST 및 gRPC) :  긴 오디오 파일(최대 480분)을 텍스트 처리할 때 사용되는 기능입니다. 오디오 데이터를 Speech-to-Text API로 보내고, 장기 실행 작업을 시작합니다. 이 작업을 사용하여 주기적으로 인식 결과를 폴링할 수 있습니다. 

스트리밍 인식(gRPC만 해당) : 마이크에 입력되는 스트리밍 오디오에 따라 텍스트로 변환하는 기능입니다. 양방향 스트림에 제공되는 오디오 데이터를 인식한다고 보시면 됩니다. 스트리밍 인식은 오디오 캡처 중에 중간 결과를 제공하므로, 사용자가 말하는 중에도 결과를 표시할 수 있습니다.


그렇다면 Speech-to-Text API가 어떤 방식으로 인지하는 지에 대해 알아보겠습니다.


동기 인식 요청을 예로 봅시다.





모든 Speech-to-Text API 동기 인식 요청에는 음성 인식 config 필드(RecognitionConfig 유형)가 포함되어야 합니다. RecognitionConfig에는 다음과 같은 하위 필드가 있습니다.  


encoding은 필수 항목으로 AudioEncoding 유형으로 제공된 오디오의 인코딩 방식을 지정합니다.  코덱이 선택이 가능한 경우, 좋은 성능을 원한다면 FLAC 또는 LINEAR16과 같은 무손실 인코딩을 선택하는 것이 좋습니다. 

sampleRateHertz은 필수 항목으로 제공된 오디오의 샘플링 레이트(Hz)를 지정합니다.

languageCode는 필수 항목으로 제공된 오디오의 음성 인식에 사용할 언어와 지역을 지정합니다.  언어 코드는 BCP-47 식별자여야 하며 일반적으로 언어를 나타내는 기본 언어 태그와 보조 지역 하위 태그로 구성됩니다

maxAlternatives은 선택사항으로 응답에서 제공할 대체 변환 텍스트 수를 나타냅니다. 기본적으로 Speech-to-Text API는 기본 텍스트 변환 한 개를 제공합니다.

profanityFilter은 선택사항으로 모욕적인 단어나 구문의 필터링 여부를 나타냅니다. 필터링된 단어는 첫 번째 문자와 별표(나머지 문자)로 표시됩니다(예: f***)

speechContext는 선택 사항으로 오디오를 처리하는 데 필요한 추가 정보를 포함합니다. 

phrases는 음성 인식 작업의 힌트를 제공하는 단어와 구문의 목록을 포함합니다


여기에 몇가지 요청에 대한 중요한 사항이 있어 그에 대해 잠깐 설명하고 가겠습니다.


먼저 샘플링 레이트입니다. 


요청 구성의 sampleRateHertz 필드에서 오디오의 샘플링 레이트를 지정하는데 이 샘플링 레이트는 관련된 오디오 콘텐츠 또는 스트림의 샘플링 레이트와 일치해야 합니다. Speech-to-Text에서는 8000Hz와 48000Hz 사이의 샘플링 레이트가 지원됩니다. 


sampleRateHertz 필드를 사용하는 대신 파일 헤더에 FLAC 또는 WAV 파일의 샘플링 레이트를 지정할 수 있습니다. Speech-to-Text API에 제출하려면 FLAC 파일의 FLAC 헤더에 샘플링 레이트가 포함되어야 합니다.


다음은 언어인데요. Speech-to-Text의 인식 엔진은 다양한 언어와 방언을 지원합니다. 요청 구성의 languageCode 필드에서 BCP-47 식별자를 사용해 오디오 언어(그리고 국가 또는 지역 방언)를 지정하면 됩니다.


시차(타임스탬프)는 특히 긴 오디오 파일을 분석하는 경우, 즉 인식된 텍스트에서 특정 단어를 검색하고 원본 오디오에서 찾아야 하는 경우에 유용합니다. 시차는 recognize, streamingrecognize, longrunningrecognize 등 모든 인식 방법에서 지원됩니다.


Speech-to-Text에는 제공된 오디오에서 인식되는 각 말의 시작 부분과 끝 부분의 시차 값(타임스탬프)이 포함될 수 있습니다. 시차 값은 오디오 시작 부분에서 경과된 시간을 100ms 단위로 나타냅니다. 요청 결과에 시차를 포함하려면 요청 구성에서 enableWordTimeOffsets 매개변수를 true로 설정하면 됩니다.


마지막으로 모델 선택인데요. Speech-to-Text는 여러 머신러닝 모델 중 하나를 사용하여 오디오 파일의 텍스트를 변환할 수 있습니다.  음성 인식 모델을 지정하려면 요청의 RecognitionConfig 객체에 model 필드를 포함하여 사용할 모델을 지정합니다.





현재 위와 같은 모델이 지원되고 있습니다.


이처럼 모든걸 잘 채워넣어 요청을 넣은 후 어느 정도의 시간이 걸려 처리가 완료되면 API는 다음과 같이 응답을 반환합니다.





results에는 결과 목록이 포함됩니다.

alternatives에는 SpeechRecognitionAlternatives 형식의 변환 텍스트 목록이 포함됩니다. 대체 변환 텍스트가 두 개 이상 나타날지 여부는 maxAlternatives를 1보다 큰 값으로 설정하여 대체 변환 텍스트를 두 개 이상 요청했는지 여부와 Speech-to-Text가 충분히 높은 품질의 대체 변환 텍스트를 생성했는지 여부에 따라 달라집니다. 

transcript에는 변환 텍스트가 포함됩니다. 

confidence에는 특정 변환 텍스트에 대한 Speech-to-Text의 신뢰도를 나타내는 값(0~1)이 포함됩니다. 클수록 신뢰도가 높습니다.


제공된 오디오에서 음성을 인식할 수 없는 경우, 반환된 results 목록에 항목이 없습니다. 음성을 인식하지 못하는 이유는 일반적으로 오디오 품질이 매우 나쁘거나 언어 코드, 인코딩 또는 샘플링 레이트 값이 제공된 오디오와 일치하지 않기 때문입니다. 따라서 주의해서 요청하셔야 합니다.


이와 비슷한 방법으로 비동기 인식과 스트리밍 인식을 요청할 수 있습니다. 


본격적으로 사용해보기 전에 데모를 체험해볼 수도 있는데요. 이 페이지에 들어가 보시면 됩니다.





위와 같이 한국어도 지원되며 간단하게 체험해볼 수 있습니다.


Speech-to-Text 가격 책정 기준은 매월 서비스에서 성공적으로 처리한 오디오의 양(15초 단위로 측정되며 15초 미만은 올림 처리)입니다.  API가 응답을 반환하면 요청에서 전송한 오디오가 성공적으로 처리된 것입니다. 여기에는 API가 오디오를 처리했지만 텍스트로 변환할 수 없음을 나타내는 빈 응답도 포함됩니다. 오류가 발생하는 요청은 성공적으로 처리된 것으로 집계되지 않으므로 비용이 발생하지 않습니다.





위 가격 책정의 경우는 개인용 시스템(예: 스마트폰, 태블릿, 노트북, 데스크톱)의 애플리케이션에 적용됩니다. 내장형 기기(예: 자동차, TV, 가전제품, 스피커)에서 Speech-to-Text API를 사용하기 위해 승인을 받고 가격을 확인하려면 Google에 문의하시면 됩니다.


더 자세한 가격 책정 정책에 대해 알아보고 싶으신 분은 이 페이지를 참고하세요.


Cloud Speech to Text를 사용하셔서 간편하게 오디오를 텍스트로 옮겨보세요. 따로 직접 오디오를 옮겨 텍스트 문서를 만들 필요 없이 실시간으로 정확한 대본을 만들 수 있어 시간이 절약되고 그만큼의 비용이 절감됩니다.  또한 OTT 서비스가 대세가 되어가는 지금 자막 처리를 하는 것에 있어 매우 유용한 기능입니다.


하이프마크에서는 기업의 웹앱로그데이터의 클라우드 적재와 ETL 파이프라인 구성 그 외 클라우드 내 데이터분석 환경 구축 및 분석 시각화 서비스를 함께 제공하고 있습니다.


AWS, GCP등 클라우드 이전 매니지드서비스 및 웹앱로그데이터 태깅 적재 관련 문의사항이 있으시면 하이프마크에 문의 주세요


감사합니다.   



참조 : https://cloud.google.com/speech-to-text/docs/basics

https://cloud.google.com/speech-to-text/pricing

https://cloud.google.com/speech-to-text

매거진의 이전글 GCP : Cloud SDK
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari