이 가이드에서는 Speech-to-Text에 사용하기 위해 준비하는 오디오 파일에 대한 실행 전 검사를 수행하는 방법을 보여줍니다. 오디오 파일 형식에 대한 배경 정보를 제공하고, Speech-to-Text에 사용할 오디오 파일을 최적화하는 방법과 오류 진단 방법을 설명합니다. 이 가이드는 기술 지식이 없는 미디어 및 엔터테인먼트 전문가와 후반 작업 전문가를 대상으로 합니다. Google Cloud에 대한 깊이 있는 지식은 필요하지 않으며, 로컬과 Cloud Storage 버킷에 저장된 파일에 2 명령줄 도구를 사용하는 방법에 대한 기본 지식만 있으면 됩니다. Show
목표
비용이 가이드에서는 비용이 청구될 수 있는 다음과 같은 Google Cloud 구성요소를 사용합니다.
가격 계산기를 사용하여 예상 사용량을 기준으로 예상 비용을 산출할 수 있습니다. 시작하기 전에
이 튜토리얼에서는 Cloud Shell을 사용하여 Cloud Storage 버킷에서 Cloud Shell 세션으로 데이터를 복사하는 등의 절차를 수행합니다. Cloud Shell은 Google Cloud CLI가 이미 설치된 셸 환경입니다. 이 튜토리얼의 여러 단계에서 gcloud CLI를 사용합니다. 또한 뒷부분의 로컬 터미널에서 튜토리얼 예시 실행 섹션에 설명된 대로 로컬 머신에 소프트웨어와 샘플 오디오 파일을 설치하고 터미널에서 이와 동일한 연습을 실행합니다. 참고: 이 튜토리얼에서는 여러 오디오 파일을 리슨합니다. 파일의 오디오 품질 차이를 들으려면 헤드폰이나 다이내믹 레인지가 넓은 스피커를 사용하는 것이 좋습니다.이 가이드에서는 오디오와 동영상을 레코딩, 변환, 스트리밍하기 위한 오픈소스 도구인 FFMPEG를 사용합니다. 이 도구에 대한 자세한 정보는 이 가이드 뒷부분에 나와 있습니다. 이 섹션에서는 미디어 제작 및 후반 작업 워크플로에서 볼 수 있는 일반적인 오디오 파일 형식, 샘플링 레이트, 비트 깊이, 레코딩 미디어를 설명합니다. Speech-to-Text에서 최상의 결과를 얻으려면 텍스트 변환에 사용되는 파일이 나중에 설명되는 특정 최소 사양을 충족하는 모노럴(모노) 파일이어야 합니다. 파일이 사양을 충족하지 않는 경우 수정된 파일을 생성해야 할 수 있습니다. 예를 들어 다음을 수행해야 할 수 있습니다. 샘플링 레이트는 오디오 파일의 주파수 범위를 결정합니다. 오디오 파일을 구성하는 초당 샘플 수가 기준이 됩니다. 일반적으로 디지털 오디오 파일의 재생 가능한 최고 주파수는 샘플링 레이트의 절반과 같습니다. 예를 들어 44.1kHz 오디오 파일에서 재생할 수 있는 가장 높은 주파수는 약 22kHz로, 일반적인 청취자의 가청 주파수 응답 범위의 최상단에 있거나 이를 넘습니다. 전화 및 전기 통신의 샘플링 레이트는 일반적으로 8kHz~16kHz 범위입니다. 이 가이드에서는 일반적으로 16kHz보다 높은 미디어 및 엔터테인먼트 산업과 관련된 형식을 주로 다룹니다. 전화 및 기타 사운드 애플리케이션에 대한 자세한 내용은 고급 모델로 전화 오디오 텍스트 변환을 참조하세요. Speech-to-Text를 통한 텍스트 변환에 사용하는 오디오 파일의 샘플링 레이트는 16kHz 이상이 좋습니다. 오디오 파일에서 볼 수 있는 샘플링 레이트는 일반적으로 16kHz, 32kHz, 44.1kHz, 48kHz입니다. 특히 높은 주파수에서는 명료도가 주파수 범위에 크게 영향을 받기 때문에 16kHz 미만의 샘플링 레이트에서는 8kHz 이상에 정보가 거의 없거나 전혀 없는 오디오 파일이 생성됩니다. 이 경우 Speech-to-Text가 음성 오디오를 텍스트로 올바로 변환하지 못할 수 있습니다. 음성 명료도에는 2kHz~4kHz 범위 전체의 정보가 필요하지만 이보다 높은 범위의 주파수의 배음(배수)도 음성 명료도를 보존하는 데 중요합니다. 따라서 샘플링 레이트를 최소한 16kHz로 유지하는 것이 좋습니다. 샘플링 레이트를 변환할 수도 있습니다. 하지만 오디오 업샘플링은 장점이 없는데, 주파수 범위 정보가 낮은 샘플링 레이트에 의해 제한되고 더 높은 샘플링 레이트로 변환해도 복구할 수 없기 때문입니다. 즉, 8kHz에서 44.1kHz로 업샘플링하면 재생 가능 주파수 범위는 낮은 샘플링 레이트의 절반인 약 4kHz로 제한됩니다. 이 가이드에서는 직접 차이를 듣고 알 수 있도록 다양한 샘플링 레이트와 비트 깊이로 녹음된 오디오 파일을 듣습니다. 오디오 파일의 비트 깊이는 가장 조용한 소리부터 가장 큰 소리까지의 범위와 파일의 신호 대 잡음비를 결정합니다. 다이내믹 레인지가 텍스트 변환 품질에 주는 영향은 주파수 응답보다는 적지만 8비트 이하의 비트 깊이는 오디오 트랙에 과도한 양자화 잡음을 유발하므로 정확한 텍스트 변환이 어려워집니다. (양자화 오차는 아날로그 입력 신호와 해당 신호의 디지털 출력 값 매핑 간의 반올림 오차입니다. 이 오차로 인해 사운드의 충실도에 직접 영향을 미치는 가청 왜곡이 발생합니다.) Speech-to-Text를 사용한 분석을 위해 권장되는 파일의 비트 깊이는 16비트 이상입니다. 샘플링 주파수와 마찬가지로 비트 깊이를 8비트에서 16비트로 상향 변환하는 것은 장점이 없습니다. 다이내믹 레인지 정보가 원래의 8비트 형식으로 제한되기 때문입니다. 원본 레코딩 매체도 오디오 파일의 품질에 영향을 줄 수 있습니다. 예를 들어 원래 자기 테이프에 녹음된 오디오 콘텐츠는 배경 히스(hiss)가 파일에 삽입될 수 있습니다. 경우에 따라 Speech-to-Text 사용 시 텍스트 변환 프로세스에서 더 나은 결과를 얻으려면 잡음이 있는 오디오를 사전 처리해야 할 수 있습니다. 잡음이 있는 녹음 및 배경 소음 간섭 처리는 이 가이드에서 다루지 않습니다. 자세한 내용은 Speech-to-Text 문서의 권장사항을 참조하세요. 이 가이드에서는 오디오 파일 작업에 FFMPEG를 사용합니다. FFMPEG 도구 세트는 다음을 포함한 다양한 기능을 제공합니다. FFMPEG의 ffprobe 함수를 사용하여 미디어 파일에 연결된 메타데이터를 표시할 수도 있습니다. 이는 머신러닝 분석을 위해 파일 유형 및 형식과 관련된 문제를 진단하려는 경우에 중요합니다. Speech-to-Text는 여러 오디오 파일 형식을 인식하지만 특정 코덱을 제대로 읽거나 분석하지 못할 수 있습니다. 이 가이드는 콘텐츠가 지원되는 파일 형식 중 하나인지 확인하는 방법을 보여줍니다. 이 가이드에서는 Speech-to-Text를 사용하기 전에 발생할 수 있는 문제를 확인하고 해결하기 위해 메타데이터 정보를 읽습니다. 비호환성을 발견하는 경우 동일한 도구를 사용하여 지원되는 형식으로 파일을 변환할 수 있습니다. Speech-to-Text가 인식하는 코덱은 다음과 같습니다. 코덱과 파일 형식은 다르다는 것을 이해해야 합니다. 파일 이름 확장자가 파일 생성에 사용된 코덱을 Speech-to-Text가 읽을 수 있음을 꼭 나타내는 것은 아닙니다. 이 가이드에서는 미디어 워크플로 환경에서 자주 볼 수 있는 FLAC 및 LINEAR16 코덱을 주로 다룹니다. 둘 다 무손실 형식입니다. Speech-to-Text에 사용하는 WAV 파일(비압축 선형 PCM 형식)은 최대 16비트 깊이여야 하며, 부동 소수점 형식으로 인코딩되어야 합니다. 환경 초기화이 가이드의 태스크를 수행하기 전에 FFMPEG를 설치하고, 일부 환경 변수를 설정하고, 오디오 파일을 다운로드하여 환경을 초기화해야 합니다. Cloud Shell 인스턴스 및 Cloud Storage 버킷에 저장된 미디어 파일을 사용합니다. 다양한 소스를 사용하면 Speech-to-Text의 다양한 기능을 사용할 수 있습니다. 이 섹션에서는 FFMPEG를 설치하고 Cloud Shell 인스턴스 스토리지 및 Cloud Storage 버킷의 샘플 데이터 스토리지 위치를 가리키는 환경 변수를 설정합니다. 미디어 파일은 두 위치에서 동일하며, 이 가이드의 일부 예시는 Cloud Shell 및 Cloud Storage 버킷의 파일에 모두 액세스합니다. 나중에 로컬 터미널에서 가이드 예시 실행 섹션에 설명된 대로 로컬 머신에 FFMPEG를 설치하고 동일한 연습을 실행할 수 있습니다.
미디어 파일의 메타데이터 검사Speech-to-Text로 오디오 또는 동영상 파일을 분석하는 경우 파일의 메타데이터 세부정보를 알아야 합니다. 이를 통해 문제를 일으킬 수 있는 불일치 또는 호환되지 않는 매개변수를 식별할 수 있습니다. 참고: Speech-to-Text API에 제출하려면 4 파일의 4 헤더에 샘플링 레이트가 포함되어야 합니다.이 섹션에서는 FFMPEG의 6 명령어로 여러 미디어 파일의 메타데이터를 검사하여 파일의 사양을 파악합니다.
분석용 오디오 파일 최적화앞서 언급했듯이 Speech-to-Text를 사용할 때는 오디오 파일이 단일 채널 모노 파일이어야 텍스트 변환 프로세스에서 오류가 발생하지 않습니다. 다음 표는 일반적인 오디오 형식과 처리를 위해 모노 파일을 변환하는 변환 프로세스를 보여줍니다. 여러 오디오 트랙이 있는 파일을 처리하려면 FFMPEG 또는 기타 오디오 편집 도구를 사용하여 스테레오 파일에서 모노 트랙을 추출합니다. 또는 Speech-to-Text 문서의 여러 채널이 있는 오디오 텍스트 변환 섹션에 설명된 대로 프로세스를 자동화할 수 있습니다. 이 가이드에서는 FFMPEG를 사용하여 스테레오 파일에서 개별 모노 트랙을 추출하는 옵션을 살펴봅니다. 이전 섹션에서 본 것처럼 6 명령어를 사용하여 파일에 포함된 오디오 채널 수를 확인한 다음 필요한 경우 1 명령어를 사용하여 파일을 모노 형식으로 추출 또는 변환할 수 있습니다.잘못된 형식에 기반한 오류 미리보기잘못된 형식이 텍스트 변환에 어떤 영향을 미치는지 보려면 모노 형식이 아닌 파일에서 Speech-to-Text를 실행해 보세요.
스크립팅을 통해 스테레오 파일을 관리하는 방법에 대한 자세한 내용은 Speech-to-Text 문서의 여러 채널이 있는 오디오 텍스트 변환을 참조하세요. 스테레오 파일을 여러 FLAC 모노 파일로 분할멀티 트랙 오류를 방지하는 방법의 한 가지 예는 스테레오 오디오 파일에서 2개의 모노 트랙을 추출하는 것입니다. 결과 트랙은 FLAC 형식이며 출력 디렉터리에 작성됩니다. 스테레오 파일에서 2개의 모노 파일을 추출할 때는 원본 파일 채널 위치를 나타내는 추출된 파일의 이름을 만드는 것이 좋습니다. 예를 들어 다음 절차에서는 서픽스 5을 사용하여 왼쪽 채널을 지정하고 서픽스 6을 사용하여 오른쪽 채널을 지정합니다.텍스트 변환할 오디오 샘플이 두 채널 모두에 있는 경우 하나의 채널만 텍스트 변환에 사용됩니다. 하지만 서로 다른 화자가 서로 다른 채널에서 녹음되는 경우 채널을 개별적으로 텍스트로 변환하는 것이 좋습니다. Speech-to-Text는 단일 녹음 내에서 여러 음성을 인식할 수 있습니다. 하지만 각 음성을 별도의 채널에 격리하면 텍스트 변환의 신뢰도 수준이 높아집니다. (음성 인식에서는 신뢰값을 단어 오류율, 즉 WER이라고도 합니다.) 동일한 녹음에서 여러 음성을 사용하는 방법에 대한 자세한 내용은 Speech-to-Text 문서의 오디오 녹음에서 여러 화자 분리를 참조하세요.
5.1 오디오 파일을 여러 모노 파일로 분할오디오 파일을 최적화하는 또 다른 예는 5.1 오디오 파일을 개별 FLAC 모노 파일로 분할하는 것입니다. 5.1 믹스와 같은 멀티 채널 믹스의 채널을 말할 때는 일반적으로 파일 이름 지정이 스테레오 또는 모노 파일에서와 다릅니다. 왼쪽 채널 파일은 일반적으로 프런트 레프트의 경우 5로 지정되고 오른쪽 채널은 프런트 라이트의 경우 6로 지정됩니다. 5.1 믹스의 나머지 채널들은 여기에서 프런트 센터는 2, 저주파수 효과는 3, 백 레프트(서라운드 레프트라고도 함)는 4, 백 라이트(서라운드 라이트라고도 함)는 5이라고 합니다. 이것은 표준 지정은 아니지만 사운드 파일의 원본을 식별하는 관례입니다.일반적으로 영화 및 TV용 멀티 채널 오디오 파일에서 기본 대화는 프런트 센터 채널이 전달합니다. Speech-to-Text를 사용할 때는 대체로 이 파일을 선택합니다. 일반적으로 믹스에서 가장 많은 대화가 포함되어 있기 때문입니다. 후반 작업 환경에서는 기본 대화, 음악, 효과 요소가 스템이라는 그룹으로 분할되므로 믹스의 모든 대화는 최종 믹스가 완료될 때까지 음악 및 효과와 분리됩니다. 대화 스템은 대화만으로 구성되기 때문에 최종 믹스에서 센터 채널을 가져오는 것보다는 이 스템을 텍스트 변환할 때 Speech-to-Text의 결과가 더 좋습니다. 이는 추출된 센터 채널이 대화가 아닌 사운드와 믹스되어 명료도가 저하될 수 있기 때문입니다.
오디오 파일 품질 테스트Speech-to-Text를 사용하여 미디어 파일을 변환하기 전에 파일을 청취하여 ML 도구가 정확한 결과를 제공하지 못하도록 하는 사운드 품질 이상이 있는지 확인하는 것이 좋습니다. 이 섹션에서는 파일 이름을 클릭하여 브라우저에서 파일을 재생합니다. (헤드폰이나 다이내믹 레인지가 넓은 스피커를 사용하는 것이 좋습니다.) 동영상 파일에서 오디오 듣기
서로 다른 샘플링 레이트로 동일한 파일 테스트다음 표에는 각각 비트 깊이와 샘플링 레이트가 다른, 청취할 동일한 오디오 파일의 여러 버전이 나와 있습니다. 오디오 파일샘플링 레이트/비트 깊이 744.1kHz/16비트 선형 PCM 822kHz/16비트 선형 PCM 916kHz/16비트 선형 PCMInput #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s16011kHz/16비트 선형 PCM Input #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s1618kHz/8비트 선형 PCM Input #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s16244.1kHz(업샘플링됨)/16비트 선형 PCM Input #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s16344.1kHz/8비트 선형 PCM Input #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s16444.1kHz/16비트 선형 PCM(업컨버팅됨)
Speech-to-Text를 사용한 파일 텍스트 변환모노 파일을 추출했으므로 이제 Speech-to-Text를 사용하여 오디오 트랙을 텍스트 변환할 수 있습니다. Input #0, flac, from 'project_files/HumptyDumptySample4416.flac': Duration: 00:00:26.28, start: 0.000000, bitrate: 283 kb/s Stream #0:0: Audio: flac, 44100 Hz, mono, s167 명령어를 사용하면 Speech-to-Text API가 호출됩니다.
'더티' 트랙 텍스트 변환사람의 대화가 들어 있는 오디오 파일 중 다른 사운드 요소가 대화에 섞인 파일이 있을 수 있습니다. 흔히 이러한 파일을 다른 요소가 섞이지 않고 대화만 있는 '클린' 트랙과 상반되는 '더티' 트랙이라고 합니다. Speech-to-Text는 잡음이 있는 환경에서도 음성을 인식할 수 있지만 결과의 정확도는 클린 트랙보다 떨어질 수 있습니다. 대화의 명료도를 개선하려면 Speech-to-Text로 파일을 분석하기 전에 추가 오디오 필터링 및 처리가 필요할 수 있습니다. 이 섹션에서는 앞의 예시에서 분석한 5.1 오디오 파일의 모노 다운믹스를 텍스트 변환합니다.
샘플링 레이트와 비트 깊이가 서로 다른 오디오 파일 텍스트 변환샘플링 레이트와 비트 깊이가 텍스트 변환에 어떤 영향을 미치는지 이해하기 위해 이 섹션에서는 다양한 샘플링 레이트와 비트 깊이로 녹음된 동일한 오디오 파일을 텍스트 변환합니다. 이를 통해 Speech-to-Text의 신뢰도 수준 및 전체 음질과의 관계를 알 수 있습니다.
다음 표는 앞의 절차 1단계의 표에 나열된 각 파일의 Speech-to-Text 출력을 요약한 것입니다. 각 파일 형식의 신뢰값 결과 차이를 확인합니다. (결과는 약간 다를 수 있습니다.) 샘플링 레이트와 비트 전송률이 낮은 오디오 파일의 텍스트 변환은 나쁜 음질로 인해 신뢰도가 낮아지는 경향이 있습니다. 00.7703180.81994 10.9353560.959684 20.9454230.964689 010.9340170.956892 020.9490690.961777분석용 동영상 파일 최적화가이드의 이 섹션에서는 영화 파일에서 5.1 오디오를 추출하는 데 필요한 단계를 설명합니다.
로컬 터미널에서 가이드 예시 실행이 가이드의 모든 예시는 로컬 컴퓨터의 터미널에서 실행할 수 있습니다. 예시를 로컬에서 실행하면 07 명령어를 사용하여 오디오 및 동영상 파일을 브라우저에서 단순히 듣는 것이 아니라 직접 재생할 수 있습니다.
문제해결오류는 여러 가지 요인으로 인해 발생할 수 있으므로 몇 가지 일반적인 오류를 검사하고 수정 방법을 알아 두는 것이 좋습니다. 특정 오디오 파일에서 텍스트 변환 프로세스가 완료되지 않는 오류가 여러 번 발생할 수 있습니다. 오디오가 너무 긴 경우 15 명령어는 최대 1분 길이의 파일을 처리할 수 있습니다. 예를 들어 다음 예시를 시도해 보세요. 5출력은 다음과 같습니다. 6이 오류는 16 명령어를 사용하여 1분보다 긴 파일을 처리하려 하기 때문에 발생합니다.길이가 1~80분인 파일에는 17 명령어를 사용할 수 있습니다. 파일의 길이를 확인하려면 다음 예시와 같이 6 명령어를 사용하면 됩니다. 7출력은 다음과 비슷합니다. 8이 오디오 파일의 실행 시간은 약 4분 8초입니다. 로컬 컴퓨터에서 대용량 파일 읽기 17 명령어는 로컬 컴퓨터에서 최대 1분 길이의 파일만 처리할 수 있습니다. 어디에서 오류가 발생할 수 있는지 알려면 이보다 긴 파일에 Cloud Shell의 17 명령어를 사용하세요. 9출력은 다음과 같습니다. 0이 오류는 오디오의 길이 때문이 아니라 로컬 머신에 있는 파일의 크기 때문에 발생합니다. 21 명령어를 사용할 경우 파일이 Cloud Storage 버킷에 있어야 합니다. |