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[소스]
기반 클래스:
objectTTS (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(onnx_dir: str = '/home/pi/.model/tts/assets/onnx', voice_dir: str = '/home/pi/.model/tts/assets/voice_styles', total_step: int = 5, speed: float = 1.05)[소스]
기반 클래스:
objectFunctions:
tts()TTS (Text to Speech)
example:
from openpibo.speech import SpeechOnDevice speech_od = SpeechOnDevice() # 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
- tts(text: str, filename: str = 'tts.wav', voice: str = 'm1', lang: str = 'ko') str[소스]
TTS(Text to Speech) — 텍스트를 음성 파일로 변환합니다.
example:
tts.tts(text='안녕하세요! 만나서 반가워요!', filename='/home/pi/tts.wav', voice='m1', lang='ko')
- 매개변수:
text (str) – 변환할 문장
filename (str) – 저장할 음성 파일 경로 (.wav)
voice (str) – 목소리 종류 (m1~m5/f1~f5)
lang (str) – 언어 코드 (‘ko’, ‘en’, ‘es’, ‘pt’, ‘fr’)
- Returns str:
저장된 파일 경로
- stt(filename='stream.wav', timeout=5, verbose=False, lang=None)[소스]
STT(Speech to Text)
목소리를 녹음한 후 faster-whisper로 텍스트로 변환합니다.
example:
speech_od.stt(timeout=5)
- 매개변수:
filename (str) – 녹음 파일 저장 경로 (.wav)
timeout (int) – 녹음 시간(s)
verbose (bool) – 녹음 진행 출력 여부
lang (str) – 언어 힌트 (None=자동감지, ‘ko’, ‘en’ 등)
- 반환:
(인식된 문자열, 감지된 언어)
- class openpibo.speech.Dialog[소스]
기반 클래스:
objectFunctions:
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.