KoSpeech 다른 데이터 넣기

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

다른 데이터를 가지고 학습하기 위해 고쳐야 할 코드를 정리해보자.

preprocess.py 수정

저음질 전화망 음성인식 데이터

기존 코드는 folder (KsponSpeech) => 타고 들어가 .text 가 있는 파일 경로까지 만든다음, 해당 파일을 열고 audio_path + 탭 + korean transcript + 탭 + 벡터화된 transcripts 로 저장한다. (최종적으로 해당 파일의 경로는 audio_path에, 전사는 위의 규칙에 따라 transcript 에 저장하고 반환하면 된다.) 아마 sentence_filter 에 위의 규칙에 맞게 읽어온 raw_sentence 를 만들어주게 될 거 같은데, 수정이 필요할 듯.

  • 추가적으로 special_filter 함수의 EXCEPT 에 괄호도 추가해주었고, elif ch == '%' 코드는 불필요한 것 같아 삭제해주었다.

  • 또한 수정된 preprocess 코드는 다음과 같다.

def preprocess(dataset_path, mode='phonetic'):
    print('preprocess started..')

    audio_paths = list()
    transcripts = list()

    percent_files = {
        '087797': '퍼센트',
        '215401': '퍼센트',
        '284574': '퍼센트',
        '397184': '퍼센트',
        '501006': '프로',
        '502173': '프로',
        '542363': '프로',
        '581483': '퍼센트'
    }
# TS_DO3 > DO3 > J13 > S000154 > wav 
    for folder in os.listdir(dataset_path): # TS_DO3까지 
      #folder = J13 .. 
      path = os.path.join(dataset_path, folder) # TSDO3 J13 
      for idx, subfolder in enumerate(os.listdir(path)):
        path = os.path.join(dataset_path, folder, subfolder) # phone TSDO3 J13 S000154 

        for jdx, file in enumerate(os.listdir(path)): 
          if file.endswith('.txt'):
            with open(os.path.join(path, file), "r", encoding = 'UTF-8') as f:
              raw_sentence = f.read() 
              new_sentence = sentence_filter(raw_sentence, mode = mode)
            audio_paths.append(os.path.join(folder, subfolder, file))
            transcripts.append(new_sentence)
          else: continue 
  
    return audio_paths, transcripts 

character.py 수정

전체 글자의 개수를 지정해 잘라서 단어 사전을 저장하는 부분을 수정하자. 전체 단어 개수를 몇 개로 설정할 지를 너무 적게 등장한 단어들을 제외하고 설정하자!

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

0개의 댓글