학습 데이터 준비

Google Cloud Speech 콘솔에서 커스텀 Speech-to-Text 모델을 미세 조정하기 위해 오디오 및 텍스트 데이터를 준비하는 방법을 알아봅니다. 학습 데이터의 품질은 생성하는 모델의 효율성에 영향을 줍니다. 노이즈와 특이한 어휘를 포함하여 프로덕션 환경에서 추론 시에 모델이 응답할 대상과 직접 관련된 대표 오디오 및 텍스트 컨텍스트를 포함하는 다양한 데이터 세트를 구성해야 합니다.

커스텀 Speech-to-Text 모델을 효과적으로 학습시키려면 다음이 필요합니다.

  • 오디오 시간 최소 100시간의 학습 데이터(오디오만 또는 실사본의 해당 텍스트 스크립트가 있는 오디오). 이 데이터는 초기 학습 단계에서 중요하므로 모델이 음성 패턴과 어휘의 미묘한 차이를 학습합니다. 자세한 내용은 정답 데이터 세트 만들기를 참조하세요.
  • 오디오 시간 최소 10시간 분량의 검증 데이터로 구성된 별도의 데이터 세트(실사본의 해당 텍스트 스크립트가 있는 오디오).

시작하기 전에

Google Cloud 계정에 가입하고 Google Cloud 프로젝트를 만들고 Speech-to-Text API를 사용 설정했는지 확인합니다.

  1. Cloud Storage로 이동
  2. 버킷이 없으면 버킷을 만듭니다.

데이터 세트 만들기

데이터 세트를 만들려면 선택한 Cloud Storage 버킷에 2개의 하위 디렉터리를 만들어야 합니다. 간단한 명명 규칙을 따릅니다.

  1. 모든 학습 파일을 저장할 training_dataset 하위 디렉터리를 만듭니다.
  2. 모든 학습 파일을 저장할 validation_dataset 하위 디렉터리를 만듭니다.
  3. 정답 주석 가이드라인에 따라 디렉터리에 오디오 및 텍스트 파일을 업로드합니다.

데이터 세트 가이드라인

  • 학습 및 검증 모두에서 지원되는 파일 형식은 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개의 음절을 사용하여 스크립트를 작성해야 합니다. 음성 내에 포함된 웃음은 완전히 무시해야 합니다. 예:

  • 오디오: '하 하 하 하 하'
  • 실사본 텍스트: '하하하'

여러 발화자

분할은 일반적으로 지원되지 않으므로 화자 태그로 분리하지 마세요.

다음 단계

다음 리소스를 따라 애플리케이션에서 커스텀 음성 모델을 활용하세요.