Google Cloud Speech 콘솔에서 커스텀 Speech-to-Text 모델을 미세 조정하기 위한 오디오 및 텍스트 데이터를 준비하는 방법을 알아보세요. 학습 데이터의 품질은 생성하는 모델의 효율성에 영향을 줍니다. 프로덕션에서 추론 시간 동안 모델이 응답하는 내용과 직접적으로 관련된 대표적인 오디오 및 텍스트 컨텍스트(예: 노이즈, 특이한 어휘)가 포함된 다양한 데이터 세트를 구성해야 합니다.
커스텀 Speech-to-Text 모델을 효과적으로 학습하려면 다음이 필요합니다.
- 오디오 시간 최소 100시간의 학습 데이터(오디오만 또는 실사본의 해당 텍스트 스크립트가 있는 오디오). 이 데이터는 초기 학습 단계에서 중요하므로 모델이 음성 패턴과 어휘의 미묘한 차이를 학습합니다. 자세한 내용은 정답 데이터 세트 만들기를 참조하세요.
- 오디오 시간 최소 10시간 분량의 검증 데이터로 구성된 별도의 데이터 세트(실사본의 해당 텍스트 스크립트가 있는 오디오).
시작하기 전에
Google Cloud 계정에 가입하고 Google Cloud 프로젝트를 만들고 Speech-to-Text API를 사용 설정했는지 확인합니다.
- Cloud Storage로 이동
- 버킷이 없는 경우 버킷을 만듭니다.
데이터 세트 만들기
데이터 세트를 만들려면 원하는 Cloud Storage 버킷에 하위 디렉터리 2개를 만들어야 합니다. 간단한 이름 지정 규칙을 따르세요.
- 모든 학습 파일을 저장할 training_dataset 하위 디렉터리를 만듭니다.
- 모든 학습 파일을 저장할 validation_dataset 하위 디렉터리를 만듭니다.
- 실사본 주석 가이드라인에 따라 디렉터리에 오디오 및 텍스트 파일을 업로드합니다.
데이터 세트 가이드라인
- 학습 및 검증 모두에서 지원되는 파일 형식은 LINEAR16으로 인코딩된 오디오 파일의 경우
.wav
이고, 텍스트 파일의 경우.txt
입니다(있는 경우). 파일 이름에 ASCII가 아닌 문자를 사용하지 마세요. - 동일한 디렉터리의 오디오 파일은 별도의 TXT 파일에 제공되어야 하며 각 파일은 해당 WAV 파일과 이름이 동일해야 합니다(예: my_file_1.wav, my_file_1.txt). 오디오 파일당 스크립트 작성 파일이 하나만 있어야 합니다.
학습 데이터
- 학습에 사용할 모든 파일은 중첩된 폴더 없이 동일한 디렉터리에 제공되어야 합니다.
- 선택사항: 가능한 경우 오디오 파일에 스크립트를 제공합니다. 타임스탬프는 필요하지 않습니다.
- 오디오 파일의 누적 오디오 길이가 100시간 이상인지 확인합니다. 그렇지 않으면 학습 작업이 실패합니다.
다음은 파일이 학습 데이터 세트로 업로드된 후 디렉터리 구조가 어떻게 표시되는지 보여주는 예시입니다.
├── training_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ ├── example_2.txt │ ├── example_3.wav (Note: Audio only instance, without corresponding text) │ └── example_4.wav (Note: Audio only instance, without corresponding text)
검증 데이터
- 검증을 위한 모든 파일은 중첩된 폴더 없이 validation_dataset이라는 동일한 디렉터리에 제공됩니다.
- 검증 오디오는 각각 30초를 넘지 않아야 합니다.
- 별도의 TXT 파일에서 동일한 디렉터리에 있는 각 오디오 파일에 대한 실사본 스크립트를 제공합니다.
다음은 파일이 검증 데이터 세트로 업로드된 후 디렉터리 구조가 어떻게 표시되는지 보여주는 예시입니다.
├── validation_dataset │ ├── example_1.wav │ ├── example_1.txt │ ├── example_2.wav │ └── example_2.txt
정답 주석 가이드라인
다음 형식 지정 안내를 참고하세요.
Numbers
기수와 서수는 숫자로만 작성되어야 합니다.
- 오디오: '한 벌의 카드에 오십이장의 카드가 있으며 다이아몬드, 하트, 스페이드 네 개의 세트에 각각 열세 개 등급이 있습니다.'
- 실사본 텍스트: '한 벌의 카드에 52장의 카드가 있으며 다이아몬드, 하트, 스페이드 4개의 세트에 각각 13개 등급이 있습니다.'
통화 및 단위
스크립트 작성 언어에서 일반적으로 작성되는 방식으로 스크립트를 작성합니다. 숫자 값 뒤에 나오는 모든 단위에는 축약어를 사용합니다. 숫자 또는 숫자 시퀀스가 통화 또는 시간을 나타내는 것이 문맥상 명백할 경우 해당 형식을 사용합니다.
날짜 및 시간
스크립트 작성 언어에 사용되는 날짜 및 시간을 일반적인 형식으로 스크립트를 작성합니다. 가능한 경우 시간을 hh:mm
형식으로 작성합니다.
주소
예를 들어 위치, 도로, 주의 전체 이름과 명시적으로 말하는 경우 축약어를 사용하여 스크립트를 작성합니다. 항목 및 위치는 사이에 쉼표를 사용하여 스크립트를 작성해야 합니다.
올바른 이름 및 억양
공식 철자법과 구두점을 사용하여 스크립트를 작성합니다. 사람 이름에 여러 철자가 쓰일 수 있고 컨텍스트가 도움이 되지 않으면 가장 자주 쓰이는 철자를 사용합니다.
브랜드, 제품 이름, 미디어 제목
공식적인 형식을 따라야 하며 가장 일반적으로 쓰여진 형식으로 스크립트를 작성합니다.
감탄사
웃음 또는 기타 말이 아닌 발화는 최대 3개의 음절을 사용하여 스크립트를 작성해야 합니다. 말 속에 포함된 웃음은 완전히 무시해야 합니다. 예:
- 오디오: '하 하 하 하 하'
- 실사본 텍스트: '하하하'
여러 발화자
일반적으로 분할이 지원되지 않으므로 발화자 태그로 구분하지 마세요.
다음 단계
애플리케이션에서 커스텀 음성 모델을 활용하려면 다음 리소스를 따르세요.