ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • gTTS를 이용해 텍스트 문서를 음성 파일로 저장하기.
    정보얻기/정보 2024. 4. 24. 12:14
    반응형

    gTTS 모듈 설치 방법.

    pip install gtts

    gTTS 모듈이 잘 설치됐는지 확인 방법.

    pip freeze

    text.txt 문서 파일이 있는 폴더에서 아래 명령어 실행.

    gtts-cli -l "ko" -f "text.txt" -o "output.wav"

    bash 명령어를 이용해 바로 실행 방법.

    #!/bin/bash
    
    # Set language to Korean(언어 설정)
    lang="ko"
    
    # Input text file(입력 파일명)
    input_file="text.txt"
    
    # Output filename template(출력 파일명)
    output_filename_template="output%03d.wav"
    
    # Starting count(시작 정수)
    count=1
    
    # Check if output file exists(001 파일이 없으면 001로, 있으면 002로 파일 만듬)
    output_filename=$(printf "$output_filename_template" $count)
    while [ -f "$output_filename" ]; do
      ((count++))
      output_filename=$(printf "$output_filename_template" $count)
    done
    
    # Generate text-to-speech using gTTS-cli(text.txt 내용을 output???.wav로 저장함)
    gtts-cli -l "$lang" -f "$input_file" -o "$output_filename"
    
    echo $count
    echo "음성 변환이 완료되었습니다. Output file: $output_filename"

    위 내용을 text_to_wav.sh로 저장합니다.

    chmod -x text_to_wav.sh

    위 명령어로 text_to_wav.sh를 실행 파일로 설정합니다.

    bash text_to_wav.sh

    위 명령어를 사용하시면 텍스트 파일을 음성 파일로 변환 가능합니다.
    output001.wav 파일을 만듬.
    같은 파일이 있을 경우, output002.wav 파일을 만듭니다.
    이런 식으로 output001.wav에서 output999.wav까지 파일을 만듭니다.

    파이썬 프로그래밍을 이용해 변환하려면,

    # gTTS 라이브러리 설치
    from gtts import gTTS
    import os
    
    # TTS 함수
    def tts(text, lang, out_file):
      """텍스트를 음성으로 변환하여 파일로 저장하는 함수"""
    
      # 언어 설정
      if lang == "ko":
        voice = gTTS(text, lang="ko")
      elif lang == "en":
        voice = gTTS(text, lang="en")
      else:
        raise ValueError("지원하지 않는 언어입니다.")
    
      # 음성 파일 저장
      voice.save(out_file)
    
    # TXT 파일 읽기
    def read_txt(file_path):
      """TXT 파일을 읽어 텍스트로 반환하는 함수"""
      with open(file_path, "r") as f:
        text = f.read()
      return text
    
    # main 함수
    def main():
        # 텍스트 파일 경로
        file_path = "text.txt"
    
        # 텍스트 읽기
        text = read_txt(file_path)
    
        # 언어 설정
        lang = "ko"
    
        # a 변수 초기화
        a = 0
    
        # 반복문
        while os.path.exists("output{:03d}.wav".format(a)):
            a += 1
    
        # 음성 파일 저장
        tts(text, lang, "output{:03d}.wav".format(a))
    
        # 음성 파일 저장 완료 메시지
        if os.path.exists("output{:03d}.wav".format(a)):
            print("음성 파일 생성 완료!")
    
    
    if __name__ == "__main__":
        main()

    위 내용을 text_to_wav.py로 저장합니다.

    python3 ./text_to_wav.py

    실행하시면 됩니다.
    이 프로그램도 위와 같이 output001.wav에서 output999.wav까지 파일을 만듭니다.

    반응형

    댓글

Designed by Tistory.