speech
번역, 형태소 분석, 자연어 인식 및 합성, 챗봇 등 다양한 자연어 처리를 합니다.
Class:
Speech
SpeechOnDevice
Dialog
- openpibo.speech.speech_api(mode, type, params={}, json_data={})[소스]
인공지능 보이스 API를 호출합니다.
example:
from openpibo.speech import speech_api res = speech_api(...)
- class openpibo.speech.Speech[소스]
기반 클래스:
object
TTS (Text to Speech)
STT (Speech to Text)
example:
from openpibo.speech import Speech speech = Speech() # 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
- tts(text, filename='tts.mp3', voice='main', lang='ko')[소스]
TTS(Text to Speech)
Text(문자)를 Speech(말)로 변환하여 파일로 저장합니다.
example:
speech.tts('안녕하세요! 만나서 반가워요!', 'main', 'ko', '/home/pi/tts.mp3')
- 매개변수:
text (str) – 변환할 문장구
voice (str) – 목소리 타입(espeak | gtts | main | boy | girl | man1 | woman1)
lang (str) – 사용할 언어(ko | en)
filename (str) – 변환된 음성파일의 경로 (mp3)
- stt(filename='stream.wav', timeout=5, verbose=True)[소스]
STT(Speech to Text)
목소리를 녹음한 후 파일로 저장하고, 그 파일의 Speech(말)를 Text(문자)로 변환합니다.
녹음 파일은
timeout
초 동안 녹음되며,filename
의 경로에 저장됩니다.example:
speech.stt('/home/pi/stt.wav', 5)
- 매개변수:
filename (str) – 녹음한 파일이 저장 될 경로.
wav
확장자를 사용합니다.timeout (int) – 녹음 시간(s)
- 반환:
인식된 문자열
- class openpibo.speech.SpeechOnDevice[소스]
기반 클래스:
object
Functions:
tts()
TTS (Text to Speech)
example:
from openpibo.speech import SpeechOnDevice speech_od = SpeechOnDevice() # 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
- class openpibo.speech.Dialog[소스]
기반 클래스:
object
Functions:
load()
reset()
ngram()
diff_ngram()
get_dialog()
translate()
get_dialog_dl()
nlp_dl()
start_llm()
call_llm()
stop_llm()
파이보에서 대화와 관련된 자연어처리 기능을 하는 클래스입니다. 다음 기능을 수행할 수 있습니다.
형태소 및 명사 분석
챗봇 기능
한역 번역 / 대화 (Deep Learning)
자연어 분석 기능 (Deep Learning)
example:
from openpibo.speech import Dialog dialog = Dialog() # 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
- load(filepath)[소스]
대화 데이터를 로드합니다.
example:
dialog.load('/home/pi/dialog.csv')
- 매개변수:
string (str) – 대화 데이터 파일 경로(csv)
대화 데이터 파일 형식:
대화1,답변1 대화2,답변2 ... 대화n,답변n
- ngram(string, n=2)[소스]
N-gram 값을 구합니다.
exmaple:
dialog.ngram('아버지가 방에 들어가셨다.') # ['아버지가', '방에', '들어가셨다.']
- 매개변수:
string (str) – 분석할 문장
n (int) – N-gram에 사용할 n 값 default:2
- 반환:
문장에서 추출한 N-gram 값
list
타입 입니다.
- diff_ngram(string_a, string_b, n=2)[소스]
N-gram 방식으로 두 문장을 비교하여 유사도를 구합니다.
exmaple:
dialog.diff_ngram('아버지가 방에 들어가셨다.' '어머니가 방에 들어가셨다.') # 0.6923076923076923
- 매개변수:
string (str) – 비교할 문장A
string – 비교할 문장B
n (int) – N-gram에 사용할 n 값 default:2
- 반환:
N-gram 방식으로 비교한 유사도
float
타입 입니다.
- get_dialog(q, n=2)[소스]
일상대화에 대한 답을 추출합니다.
저장된 데이터로부터 사용자의 질문과 가장 유사한 질문을 선택해 그에 대한 답을 출력합니다.
example:
dialog.get_dialog('나랑 같이 놀자')
- 매개변수:
string (str) – 질문하는 문장
n (int) – N-gram에 사용할 n 값 default:2
- 반환:
답변하는 문장 (한글)
string
타입 입니다.
- translate(string, target='en')[소스]
문장을 번역합니다.
example:
dialog.translate('안녕하세요! 만나서 정말 반가워요!') # "Hi! Nice to meet you!"
- 매개변수:
string (str) – 번역할 문장
target (str) – 번역될 언어(ko, en, ja, fr …)
- 반환:
번역 된 문장
- get_dialog_dl(string)[소스]
일상대화에 대한 답을 추출합니다.(Deep Learning)
example:
dialog.get_dialog_ml('나랑 같이 놀자')
- 매개변수:
string (str) – 질문하는 문장 (한글)
- 반환:
답변하는 문장 (한글)
- nlp_dl(string, mode)[소스]
문장을 분석합니다.(Deep Learning)
문장을 지정한 모드로 분석합니다.
example:
dialog.nlp_ml('안녕하세요. 오늘 매우 즐거워요', 'ner')
- 매개변수:
string (str) – 분석할 문장
mode (str) – 분석 모드 `` (summary|vector|sentiment|emotion|ner|wellness|hate) ``
- 반환:
분석 결과
- call_llm(prompt=None, system_prompt=None, temperature=0.8, max_tokens=100)[소스]
LLM 서버(OpenAI 호환 Chat Completions API)를 호출합니다.
- 예시:
dialog.call_llm(prompt=”안녕하세요”, system_prompt=”너는 내 스마트한 비서야”)
- 매개변수:
prompt (str) – 사용자의 입력 메시지.
system_prompt (str) – 시스템 프롬프트. (없으면 기본값 유지)
- 반환:
생성된 텍스트 또는 API 응답 전체 JSON.