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

Functions: tts() stt()

  • 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()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
tts(text, filename='tts.mp3', voice=2, lang='ko')[소스]

TTS(Text to Speech)

Text(문자)를 Speech(말)로 변환하여 파일로 저장합니다.

example:

speech_od.tts(text='안녕하세요! 만나서 반가워요!', 'ko', '/home/pi/tts.mp3')
매개변수:
  • text (str) – 변환할 문장구

  • voice (int) – 목소리 번호 0 - 5

  • lang (str) – 사용할 언어(ko)

  • filename (str) – 변환된 음성파일의 경로 (mp3)

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

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

example:

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

반환:

분석 결과

start_llm(port=50020)[소스]

LLM 서비스를 시작합니다. (Chat 모드)

example:

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

stop_llm()[소스]

LLM 서비스를 중지합니다.

example:

dialog.stop_llm()