speech
번역, 형태소 분석, 자연어 인식 및 합성, 챗봇 등 다양한 자연어 처리를 합니다.
- openpibo.speech.speech_api(mode, type, params={}, json_data={})[소스]
인공지능 보이스 API를 호출합니다.
example:
from openpibo.speech import speech_api res = speech_api(...)
- class openpibo.speech.Speech[소스]
Bases:
object
TTS (Text to Speech)
STT (Speech to Text)
example:
from openpibo.speech import Speech speech = Speech() # 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
- tts(string, filename='tts.mp3', voice='main', lang='ko')[소스]
TTS(Text to Speech)
Text(문자)를 Speech(말)로 변환하여 파일로 저장합니다.
example:
speech.tts('안녕하세요! 만나서 반가워요!', 'main', 'ko', '/home/pi/tts.mp3')
- 매개 변수
string (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.Dialog[소스]
Bases:
object
Functions:
load()
reset()
mecab_pos()
mecab_morphs()
mecab_nouns()
ngram()
diff_ngram()
get_dialog()
translate()
get_dialog_dl()
nlp_dl()
파이보에서 대화와 관련된 자연어처리 기능을 하는 클래스입니다. 다음 기능을 수행할 수 있습니다.
형태소 및 명사 분석
챗봇 기능
한역 번역 / 대화 (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
- mecab_pos(string)[소스]
형태소를 품사와 함께 추출합니다.
exmaple:
dialog.mecab_pos('아버지가 방에 들어가셨다.') # [('아버지', 'NNG'), ('가', 'JKS'), ('방', 'NNG'), ('에', 'JKB'), ('들어가', 'VV'), ('셨', 'EP+EP'), ('다', 'EF'), ('.', 'SF')]
- 매개 변수
string (str) – 분석할 문장 (한글)
- 반환
형태소 분석 결과
list(형태소, 품사)
형태로 출력됩니다.
- mecab_morphs(string)[소스]
형태소를 추출합니다.
exmaple:
dialog.mecab_morphs('아버지가 방에 들어가셨다.') # ['아버지', '가', '방', '에', '들어가', '셨', '다', '.']
- 매개 변수
string (str) – 분석할 문장 (한글)
- 반환
형태소 분석 결과
list
타입 입니다.
- mecab_nouns(string)[소스]
명사를 추출합니다.
exmaple:
dialog.mecab_nouns('아버지가 방에 들어가셨다.') # ['아버지', '방']
- 매개 변수
string (str) – 분석할 문장 (한글)
- 반환
문장에서 추출한 명사 목록
list
타입 입니다.
- 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 …)
- 반환
번역 된 문장