speech

번역, 형태소 분석, 자연어 인식 및 합성, 챗봇 등 다양한 자연어 처리를 합니다.

Class: Speech 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[소스]

Bases: object

Functions: tts() stt()

  • 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
reset()[소스]

대화 데이터를 초기화합니다.

example:

dialog.reset()
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 …)

반환

번역 된 문장

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) ``

반환

분석 결과