[NLP] Kospeech 사용 준비하기

박경민·2023년 7월 24일
0
post-thumbnail
post-custom-banner

!pip install -e . 를 실행한 다음 학습으로 넘어가기 이전 해야할 단계들에 대해 알아보자.

1. 전처리

-학습에 필요한 것 : 음성 데이터 (pcm), 전사데이터 (음성이 무엇을 말하는지 적은 문자열)

  • 전사데이터로부터 => 기호, 문장 부호 삭제하여 최종적으로 예측하고자 하는 문장 구성 생성. label 이라 볼 수 있음! (후에 이 데이터로부터 단어 사전과, 정답 벡터를 생성) / 아래 rule 은 가져온 코드로 실행 안해도 될 거 같음.
def rule(x):
    # 괄호
    a = re.compile(r'\([^)]*\)')
    # 문장 부호
    b = re.compile('[^가-힣 ]')
    x = re.sub(pattern=a, repl='', string= x)
    x = re.sub(pattern=b, repl='', string= x)
    return x
  • 실제로 들어온 음성 데이터에 대해 전처리하는 코드, 사전 만드는 코드는 'kospeech/dataset/kspon'에 저장되어있다. Kospeech 중 전처리 포함 코드

  • 전처리 코드는 AIhub 에 있는 한국인 발화 데이터에 적용 가능한 것이고, 우리도 역시나 이 데이터를 사용할 것이다.

1. 이제 해야할 건 이 전처리 코드를 돌리기 위해 또다시 필요한 모듈을 다운 받고, (requirements.text 를 실행시켜야 하는데 그러려면 'kospeech/dataset/kspon' 폴더로 이동 후에) 다음 명령어를 실행한다. (그리고 나오는 오류 메시지는 무시하자.)

pip install -r requirements.txt

2. 다음은 같은 폴더에 위치한 main.py 를 실행시키기 위해 kspon 폴더 안에 있는 preprocess.sh 파일을 봐야 한다. preprocess.sh

포함되어 있는 정보는 다음과 같다.

--dataset_path: 오디오 파일을 포함하는 폴더의 경로

--vocab_dest: 전처리의 단어 사전의 저장 경로 (단어 사전은 우리가 만드는 것은 아님, 저장할 경로만)

--outputunit: 택할 전처리 방법(필자는 character unit 글자 단위 _ 선택)

--preprocess_mode: phonetic인지 spelling인지 원하는 것 선택 -> 칠 십 퍼센트 or 70% (필자는 phonetic)

--vocab_size: 단어 사전의 크기, 미입력시 5000

3. 따라서 preprocess.sh 에 오디오파일 포함 폴더 경로와 전처리 결과로 만든 단어 사전은 어디에 저장할 지 위치를 주고, 실행한다. (데이터가 크니 여기서 시간이 좀 걸림, 아마 preprocess.sh 을 실행하면 main 포함 전체가 실행되는 구조인듯)

$ ./preprocess.sh

4. 3과 같은 역할을 하는데, preprocess.sh 의 경로는 바꿔서 저장해두고, 다음 명령어를 실행하는 방법도 있다. (둘 중 하나.) 경로는 예시이므로 수정. 그럼 3또는 4의 결과로

python main.py --dataset_path "D:\code\train wav" --vocab_dest "D:\kospeech-latest" --output_unit "character" --preprocess_mode 'phonetic'

5. 전처리 결과로 'KoSpeech/data/transcripts.txt' 경로에 transcripts.text 파일이 만들어질 것이다. 구조는

'오디오 경로 + 탭 + 한국어 전사 + 탭 + 벡터화된 전사' 형태이며, 아래와 같다.

6. 이 transcript 파일은 정답 파일처럼 활용되어 학습에 활용될 것인데, 파일을 열고 인코딩 방법을 UTF-8 로 변경해준다.

그리고 나서 아마 학습 코드를 실행하면 또다른 오류 (데이터 개수도 고정되어 있기 떄문에)가 뜰 것이다.

profile
Mathematics, Algorithm, and IDEA for AI research🦖
post-custom-banner

0개의 댓글