인식도 잘되고 하구만
import requests
import json
from gtts import gTTS
import playsound as ps
import speech_recognition as sr
"""
1. 로컬에 ollama와 llama3.1:8b 설치
2. STT를 ko로 고정
3. TTS를 ko로 고정
[의존성 관련]
pip install gtts
pip install ollama
pip install playsound
pip3 install PyObjC
pip install SpeechRecognition
pip install -U pip
pip install -U pyaudio
"""
def speak_text(text):
tts = gTTS(text, lang='ko', slow=False)
tts.save("response.mp3")
# os.system("mpg321 response.mp3")
ps.playsound("response.mp3")
def stt():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something! : ")
audio = r.listen(source)
return r.recognize_google(audio, language='ko-KR')
def ollama_chat(text):
url = "http://localhost:11434/api/generate"
data = {
"model": "llama3.1:8b",
"prompt": text
}
header = {'Content-Type': 'application/json'}
response = requests.post(url, json=data, headers=header)
if response.status_code == 200:
print( response.content.decode().strip().split('\n') )
json_obj = response.content.decode().strip().split('\n')
res_data =[json.loads(obj) for obj in json_obj]
res_text = ''
for item in res_data:
res_text += item['response']
# print(res_text)
return (True, res_text)
else:
# print('Error:', response.status_code, response.text)
return (False, response.text)
return (False, '')
if __name__ == "__main__":
# 음성 입력
message = stt()
print('질문: ' , message)
# 생각 답변
(status, text) = ollama_chat(message)
print('답변: ', text)
# 음성 출력
speak_text(text)
1. 로컬에 Ollama설치 후 server를 띄우면 이렇게 확인 가능함.
2. Python에서 의존성 설치 (venv환경에서 진행)
- 필요에 따른 설치
pip install gtts
pip install ollama
pip install playsound
pip3 install PyObjC
pip install SpeechRecognition
pip install -U pip
pip install -U pyaudio
'코드' 카테고리의 다른 글
inline code (0) | 2023.11.17 |
---|---|
keyscan (0) | 2023.11.17 |
Android 적응형 배너 적용 (0) | 2022.08.07 |
Android viewBinding로 변경 (0) | 2022.08.07 |
iOS에서 admob의 SKAdNetwork적용 후 앱 승인요청 필요 정보. (0) | 2021.06.01 |