이 페이지에서는 비동기식으로 하나 이상의 긴 오디오 파일을 텍스트로 변환하는 방법을 보여줍니다. Recognize
는 1분 오디오 길이 제한을 부과합니다. 따라서 이보다 긴 파일에는 BatchRecognize
를 사용해야 합니다.
일괄 음성 인식에서는 google.longrunning.Operation
이 반환되어 이를 폴링하여 파일의 텍스트 변환이 완료되는 시점을 알 수 있습니다.
사용자가 지정한 Google Cloud Storage 버킷에 텍스트 변환이 기록됩니다.
일괄 음성 인식 수행
Speech-to-Text가 Google Cloud Storage의 파일에 액세스하려면 Speech-to-Text에 대한 서비스 계정을 만들고 해당 계정에 관련 스토리지 객체에 대한 읽기 액세스 권한을 부여해야 합니다. 서비스 계정을 만들려면 Cloud Shell에서 다음 명령어를 실행하여 계정이 없으면 계정을 만들고 표시합니다.
BatchRecognizeRequest 구성
BatchRecognize
는 인식을 수행하기 위해 사용자가 지정한 인식기를 사용합니다. 따라서 명시적으로 또는 자동 디코딩을 선택하여 디코딩 매개변수만 제공하면 됩니다.
다음은 BatchRecognize 요청의 예입니다.
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
'config': {
'autoDecodingConfig': {}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese.wav"
}
],
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
요청 수준 재정의
인식기에는 언어 및 모델 외에도 enable_automatic_punctuation
과 같은 인식 매개변수 목록이 포함됩니다.
요청 수준에서 매개변수를 재정의할 수 있으므로 원하는 인식 특성 조합마다 다른 인식기를 만들 필요가 없습니다.
인식기가 위와 같이 생성되었다고 가정합니다.
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers?recognizer_id=<RECOGNIZER-ID>
{
'languageCodes': 'en-US',
'model': 'latest_long',
'config': {
'features': {
'enableAutomaticPunctuation': true
'enableWordTimeOffsets': true
}
}
}
요청 수준에서 특성을 재정의하는 방법입니다(즉, 각 파일의 인식에 이러한 특성이 적용됨).
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
'config': {
'autoDecodingConfig': {}
'features': {
'enableAutomaticPunctuation': false
}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese.wav"
}
],
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
이 특성은 인식기 수준에서만 사용 설정되고 요청 수준에서는 지정되지 않았으므로 인식 특성 enableWordTimeOffsets
만 사용 설정된 gs://my-audio-bucket/en-us/cheese.wav
에서 ASR을 수행합니다. 요청 수준에서 enableAutomaticPunctuation
이 false로 지정되었으므로 인식기 수준에서 설정된 원래 값 true보다 우선 적용되며 이 요청은 자동 구두점을 수행하지 않습니다.
파일 수준 재정의
파일 수준에서도 이와 동일한 상황이 가능하므로 파일 단위로 인식 특성을 유연하게 설정할 수 있습니다. 예를 들어 모든 파일에 자동 구두점을 적용하지만 단어 타임스탬프는 특정 파일에만 적용할 수 있습니다.
위와 같이 인식기를 만들 수 있습니다. 그런 다음 다음과 같이 요청을 지정합니다.
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
# This specifies that all files will use automatic decoding
'config': {
'autoDecodingConfig': {}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese1.wav"
'config': {
# This file will not include word time offsets.
'features': {
'enableAutomaticPunctuation': false
}
},
},
{
'uri': "gs://my-audio-bucket/en-us/cheese2.wav"
'config': {
# This file will include word time offsets.
'features': {
'enableAutomaticPunctuation': true
}
},
},
]
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
BatchRecognize 응답 처리
BatchRecognize
는 응답으로 google.longrunning.Operation
을 반환합니다.
작업을 폴링하는 방법은 작업 페이지를 참조하세요.
BatchRecognizeResponse
는 완료 시 설정되며 결과에 대해 파일별로 자세히 설명하는 데, 이는 스크립트에 대한 Cloud Storage URI이거나 문제를 설명하는 오류 메시지입니다.
응답 JSON은 다음과 비슷합니다.
'response': {
'@type': 'type.googleapis.com/google.cloud.speech.v2.BatchRecognizeResponse',
'results': {
# Input file name
'gs://my-audio-bucket/audio/en-us/cheese.wav': {
# Output (transcript) file name
'uri': 'gs://my-transcripts-bucket/en-us/cheese_transcript_63d14a9d-0000-2c31-b9b4-c82add6c82a4.json'
}
}
}
BatchRecognize의 스크립트 파일은 BatchRecognizeResults
형식의 객체로 지정됩니다.