βœ’οΈ Kibwa Voice Phishing Prev Project/Data Processing

[Data Processing] STT 데이터 λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ μžλ™ν™” 슀크립트 μž‘μ„±

A Lim Han 2023. 6. 23. 15:03

πŸ€ STT λ°μ΄ν„° λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ μžλ™ν™” μŠ€ν¬λ¦½νŠΈ μž‘μ„±

 

β‘  pip λͺ…λ Ήμ–΄λ₯Ό 톡해 boto3 νŒ¨ν‚€μ§€ μ„€μΉ˜ & boto3 λͺ¨λ“ˆ μž„ν¬νŠΈ

!pip install boto3

import boto3

 

β€» boto3 λž€?

AWS μ„œλΉ„μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” Python SDK
--> μž„ν¬νŠΈν•œ boto3 이 λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ AWS S3 ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μƒμ„±ν•˜κ³  νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•  수 있음

 

 

β‘‘ AWS 계정 자격 증λͺ…κ³Ό AWS 리전 μ„€μ •

# AWS 계정 자격 증λͺ… 및 AWS 리전 μ„€μ •
aws_access_key_id = "κ³„μ •μ˜ μ—‘μ„ΈμŠ€ ν‚€κ°’"
aws_secret_access_key = "κ³„μ •μ˜ μ‹œν¬λ¦Ώ μ—‘μ„ΈμŠ€ ν‚€κ°’"
aws_region = "κ³„μ •μ˜ AWS Region"

 

β€» AWS 리전(Region) μ΄λž€?

: AWS ν΄λΌμš°λ“œμ—μ„œ μ œκ³΅ν•˜λŠ” 지리적인 μ˜μ—­.
λ…λ¦½λœ 데이터 μ„Όν„° μ§‘ν•©μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, λ‹€μˆ˜μ˜ κ°€μš© μ˜μ—­(Availability Zone)으둜 λ‚˜λˆ„μ–΄μ Έ μžˆλ‹€.

 

 

β€» AWS 계정 자격 증λͺ…μ΄λž€?

: AWS λ¦¬μ†ŒμŠ€μ— μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” κΆŒν•œμ„ λΆ€μ—¬ν•˜λŠ” μ •λ³΄λ‘œ, 일반적으둜 μ•‘μ„ΈμŠ€ 킀와 μ‹œν¬λ¦Ώ ν‚€(λ˜λŠ” μ•‘μ„ΈμŠ€ 토큰)둜 κ΅¬μ„±λ˜μ–΄μžˆλ‹€.

 

AWS 계정 자격 증λͺ…
μ—‘μ„ΈμŠ€ ν‚€ μ‹œν¬λ¦Ώ μ—‘μ„ΈμŠ€ ν‚€
ν”„λ‘œκ·Έλž˜λ°μ  μ—‘μ„ΈμŠ€ μ‹œ μ‚¬μš©λ˜λŠ” μ‹λ³„μž ν”„λ‘œκ·Έλž˜λ°μ  μ—‘μ„ΈμŠ€ μ‹œ μ‚¬μš©λ˜λŠ” λΉ„λ°€λ²ˆν˜Έ

 

 

β‘’ JSON νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•  download_json_file() ν•¨μˆ˜ κ΅¬ν˜„

def download_json_file(job_number, output_path):
    # AWS 계정 자격 증λͺ… 및 AWS 리전 μ„€μ •
    aws_access_key_id = "κ³„μ •μ˜ μ—‘μ„ΈμŠ€ ν‚€κ°’"
    aws_secret_access_key = "κ³„μ •μ˜ μ‹œνŠΈλ¦Ώ μ—‘μ„ΈμŠ€ ν‚€κ°’"
    aws_region = "κ³„μ •μ˜ AWS Region"

    # AWS S3 ν΄λΌμ΄μ–ΈνŠΈ 생성
    s3 = boto3.client("s3", aws_access_key_id=aws_access_key_id,
                            aws_secret_access_key=aws_secret_access_key,
                            region_name=aws_region)

    # 파일 λ‹€μš΄λ‘œλ“œ 반볡문
    for job_number in job_numbers:
    
        # λ‹€μš΄λ‘œλ“œν•  파일 경둜 생성
        job_url = f"파일이 μžˆλŠ” URL μ£Όμ†Œ"
        file_name = f"μˆ˜μ‚¬κΈ°κ΄€ μ‚¬μΉ­ν˜•_{job_number}.json"
        file_path = f"{output_path}/{file_name}"

        # 파일 λ‹€μš΄λ‘œλ“œ
        s3.download_file(Bucket="bucket_name", Key=file_path, Filename=file_name)

 

β€» Line 2 ~ 5

β‘‘λ²ˆ κ³Όμ •μ—μ„œ μ„€μ •ν•œ 계정 정보 μž‘μ„±

 

β€» Line 7 ~ 10

β‘‘λ²ˆ κ³Όμ •μ—μ„œ μ„€μ •ν•œ 계정 정보λ₯Ό λ°›μ•„ S3 ν΄λΌμ΄μ–ΈνŠΈ 생성

 

β€» Line 12 ~ 13

download_json_file ν•¨μˆ˜ 내뢀에 파일 λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•œ 반볡문 κ΅¬ν˜„
-->  job_numbers 리슀트의 각 μš”μ†Œμ— λŒ€ν•΄ λ°˜λ³΅ν•˜λ©΄μ„œ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•©λ‹ˆλ‹€.

 

β€» Line 15 ~ 18

job_url, file_name, file_path λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 파일 경둜 생성

 

λ³€μˆ˜λͺ…
job_url file_name file_path
AWS Transcribe μž‘μ—…μ˜ URL 생성 λ‹€μš΄λ‘œλ“œν•  파일의 이름 지정 λ‹€μš΄λ‘œλ“œν•  파일이 μ €μž₯될 경둜 지정

 

β€» Line 20 ~ 21

s3.download_file ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 파일 λ‹€μš΄λ‘œλ“œ
-->  AWS S3μ—μ„œ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜μ—¬ file_path에 μ§€μ •λœ 경둜둜 μ €μž₯

 

 

β‘£ λ‹€μš΄λ‘œλ“œν•  파일의 번호 & λ‹€μš΄λ‘œλ“œ 경둜 μ„€μ •

# λ‹€μš΄λ‘œλ“œν•  파일 λ²ˆν˜Έμ™€ μ €μž₯ν•  경둜 μ„€μ •
job_numbers = [8, 9, 10, 11, 12, 13, 14, 15, 16]  # λ‹€μš΄λ°›μ„ 파일 번호λ₯Ό 리슀트둜 지정
output_path = "λ‹€μš΄λ‘œλ“œλ°›μ„ 경둜"

 

 

β‘€ download_json_file ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜μ—¬ JSON 파일 λ‹€μš΄λ‘œλ“œ

# JSON 파일 λ‹€μš΄λ‘œλ“œ μ‹€ν–‰
download_json_file(job_numbers, output_path)