huggingface에는 모델만 공개된 것이 아니라 다음과 같이 dataset도 오픈되어 있습니다.
자신이 사용하고 있는 dataset도 다음과 같이 공유할 수 있습니다. 하지만 선행작업이 필요합니다. 바로 huggingface-cli
로그인 작업입니다. 관련된 자료는 아래를 참고해주시면 감사하겠습니다.
https://byeolcardi.tistory.com/30
huggingface-cli 로그인 방법
자신이 huggingFace에 자신의 모델을 Porting하고 나서 사용하려면 huggingface-cli 로그인이 필요합니다. Hugging Face CLI 설치를 우선적으로 진행해야 합니다. pip install huggingface_hub Hugging Face CLI 로그인을 하
byeolcardi.tistory.com
파이썬 코드를 통해서 음성파일, text(음성 파일을 text로 변환한 것) pair를 추가하는 파이썬 코드는 다음과 같습니다.
from datasets import load_dataset, DatasetDict
import torchaudio
# 불러올 데이터셋의 이름과 버전
dataset_name = "byeolcardi/stt_data"
# 새로 추가할 데이터
new_audio_file = "1.wav" # 실제 음성 파일 경로
new_text_label = "안녕하세요" # 해당 오디오 파일에 대한 텍스트 라벨
# 기존 데이터셋 불러오기
dataset = load_dataset(dataset_name)
# 음성 파일을 텐서로 변환
waveform, sample_rate = torchaudio.load(new_audio_file)
# 새로운 데이터를 추가하여 데이터셋을 확장
new_data = {
"audio": [waveform], # 음성 파일의 waveform을 리스트에 추가
"text": [new_text_label]
}
new_dataset = dataset.map(lambda example: new_data, batched=True)
# 데이터셋을 Hugging Face Hub에 푸시
new_dataset.push_to_hub("stt_data")
해당 코드는 byeolcardi라는 유저(작성자)의 stt_data에 저장하는 코드입니다. 하나씩 push 하는 것 보셨으니 이제 여러 개를 한꺼번에 넣는 코드를 말씀드리겠습니다.
data폴더 안에 1부터 100까지의 wav파일(1.wav~100.wav) 그리고 해당하는 텍스트 파일이 각각 1.txt~100.txt의 형태로 저장되어 있다 했을 때 다음과 같은 코드로 작성해 주시면 됩니다.
from datasets import load_dataset
import torchaudio
import os
# 불러올 데이터셋의 이름과 버전
dataset_name = "byeolcardi/stt_data"
# 데이터 폴더 경로
data_folder = "data"
# 기존 데이터셋 불러오기
dataset = load_dataset(dataset_name)
# 새로운 데이터를 추가하여 데이터셋을 확장
new_data = {"audio": [], "text": []}
# 1부터 100까지 순회하며 데이터 추가
for i in range(1, 101):
audio_file_path = os.path.join(data_folder, f"{i}.wav")
text_file_path = os.path.join(data_folder, f"{i}.txt")
# 음성 파일을 텐서로 변환
waveform, sample_rate = torchaudio.load(audio_file_path)
# 텍스트 라벨 읽어오기
with open(text_file_path, "r") as text_file:
text_label = text_file.read().strip()
new_data["audio"].append(waveform)
new_data["text"].append(text_label)
# 새로운 데이터를 추가하여 데이터셋을 확장
new_dataset = dataset.add(new_data)
# 데이터셋을 Hugging Face Hub에 푸시
new_dataset.push_to_hub("byeolcardi/stt_data")
쉘 스크립트에서 아나콘다 설정하기 (0) | 2025.04.25 |
---|---|
실전 머신러닝 개발: 자주 쓰였던 Feature Engineering 기법 5가지 (0) | 2025.04.20 |
[Python] 워드 파일에서 텍스트만 뽑아내기 (0) | 2023.08.22 |
python 만으로 날짜 네이밍 폴더 자동화 하기 (0) | 2023.08.10 |
[Python] pdf파일 합치기 (0) | 2023.08.09 |