우선 Whisper API와 text diff를 사용하기 위한 기본 설정을 해보자
import openai
from difflib import SequenceMatcher
# OpenAI API 키 설정
OPENAI_API_KEY = "OPENAI_API_KEY를 넣어주세요"
openai.api_key = OPENAI_API_KEY
음성파일을 텍스트로 변경해주는 함수
- 아래 함수에서는 audio_path는 음성 파일의 경로를 나타내고 해당 파일을 읽어 텍스트화 할 예정이다.
- target_language는 오디오 파일을 어떤 언어로 열지 설정해주는 것이며 여기서는 한국어(ko)로 설정해주었다.
- with 문을 사용하여 오디오 파일을 열고, audio_file 변수에 파일을 연결해준다.
- transcript에는 whisper-1을 이용하여 오디오 파일을 변환해주고 언어설정을 전달한다.
- transcript로 변환된 텍스트를 text 변수에 담아주어 text를 반환한다.
def transcribeAudio(audio_path, target_language="ko"):
try:
with open(audio_path, "rb") as audio_file:
transcript = openai.Audio.transcribe("whisper-1", audio_file, target_language=target_language)
text = transcript['text']
return text
except Exception as e:
return str(e)
변경된 텍스트와 기준이 되는 텍스트 비교하여 점수 리턴 함수
- 이전에 작성하였던 transcribeAudio 함수를 호출하여 음성 파일을 한국어로 변환하여 stt_text 변수에 담아준다.
- SequenceMatcher를 사용하여 두 문자열 stt_text와 target_text 간의 유사성을 계산한다.
- similarity_ratio * 100를 통해 점수를 계산하여 보여준다.
def compareText(audio_path, target_text):
# 음성을 텍스트로 변환
stt_text = transcribeAudio(audio_path, target_language="ko")
# 문자열 유사성 계산
similarity_ratio = SequenceMatcher(None, stt_text, target_text).ratio()
return stt_text, similarity_ratio * 100
함수 테스트를 해보자
오디오 경로(audio_path)와 기준이 될 텍스트(target_text)변수에 값을 담아서 comparText함수를 실행한다.
print를 통해서 결과를 테스트한다.
if __name__ == "__main__":
# 음성 파일 경로 설정
audio_path = "C:\whisper_test/test.mp3"
# 비교 대상 텍스트 설정
target_text = "안녕하세요"
# 함수 호출하여 결과 저장
transcribed_text, similarity_score = compareText(audio_path, target_text)
# 변환된 텍스트 출력
print("음성에서 변환된 텍스트:")
print(transcribed_text)
# 유사도 점수 출력
print("음성과 대상 텍스트 출력 유사성:", similarity_score)
결과
'과정 > 1차 AI프로젝트' 카테고리의 다른 글
1차 AI프로젝트 관련 3차 멘토링 (0) | 2023.09.21 |
---|---|
AI 1차 프로젝트 Git, FastAPI 기초 및 멘토링_0911(개인역할 가이드) (0) | 2023.09.12 |
AI 1차 프로젝트 주제 확정 및 멘토링_0907 (0) | 2023.09.08 |
댓글