728x90
반응형
[1]
https://chlduswns99.tistory.com/40
[2]
https://chlduswns99.tistory.com/41
프로젝트의 최종 목표는 라즈베리파이 혹은 젯슨나노에서 구동이 가능한 온디바이스형 보이스 챗봇입니다. 하지만 먼저 PC에서 구현하는 것을 현재 목표로 하고 있습니다.
하지만 온디바이스에 집착하다보니 굉장히 사용할 수 있는 라이브러리나 기능들이 너무 제한적이어서 일단! 구현을 목표에 두고 하나씩 수정해나가는 방식을 택했습니다.
이 글은 약 한달에서 두달간의 오류를 거치고 거친 완성본입니다. 전 배우는 입장에서 기록을 위해 쓴 글이니 최적화된 방법이 아닐 수 있음을 미리 알려드립니다!!
Text-To-Speech(TTS)
- TTS란 말 그대로 텍스트를 입력하면 이것이 Speech 형태로 반환되는 것입니다. 즉, 문자를 입력하면 목소리로 출력하는 것이죠.
- 간단한 코드를 아래처럼 작성해봤습니다.
import pyttsx3
def text_to_speech(text):
engine = pyttsx3.init()
engine.say(text)
engine.runAndWait()
if __name__ == "__main__":
user_text = input("텍스트를 입력하세요: ")
text_to_speech(user_text)
- pyttsx3 라이브러리를 이용해 간단한 코드를 작성해보았습니다. 물론 필요한 라이브러리는 설치 해주셔야 합니다.
- 아래와 같이 간단하게 테스트할 수 있습니다.
Speech-To-Text(STT)
- 이번에는 반대로 STT 기능을 알아보겠습니다.
- STT란 역시 말 그대로 Speech를 Text로 바꿔주는 기능입니다. 문장을 말하면 그 문장을 텍스트로 바꿔주는 것이죠.
- 이것도 역시 간단하게 코드로 구현해보았습니다.
import speech_recognition as sr
def speech_to_text():
recognizer = sr.Recognizer()
with sr.Microphone() as source:
print("말씀하세요...")
audio = recognizer.listen(source)
print("음성 인식 중...")
text = recognizer.recognize_google(audio, language='ko-KR')
print(f"인식된 텍스트: {text}")
if __name__ == "__main__":
speech_to_text()
- 이번에는 speech_recognition 라이브러리를 설치하여 진행해보았습니다.
- 노트북의 기본 마이크를 통해 목소리가 입력되고 이를 텍스트로 변환해줍니다.
- 아래와 같이 구현이 가능합니다.
이제 다음 파트에서는 이를 llama2와 결합할 것입니다. 그럼 아래와 같은 순서로 작동하게 구현됩니다.
음성 입력 -> 텍스트 출력 -> 텍스트를 llama2한테 입력 -> llama2 응답 출력 -> 텍스트를 tts에 입력 -> 음성으로 출력
728x90
반응형
'프로젝트' 카테고리의 다른 글
Llama3 한국어 파인튜닝(FIne-Tuning) - 2024 ICT 한이음 멘토링[5] (0) | 2024.08.06 |
---|---|
2024 ICT 한이음 멘토링[4] - STT,TTS기능 Llama2 연동 (온디바이스 보이스챗봇) (0) | 2024.06.25 |
2024 ICT 한이음 멘토링[2] - 한이음 장비 신청, Ollama 설치 (온디바이스 보이스챗봇) (0) | 2024.04.11 |
2024 ICT 한이음 멘토링[1] - 프로젝트 선정 및 지원 (온디바이스 보이스챗봇) (0) | 2024.02.29 |