
Spokestack Python에 오신 것을 환영합니다! 이 라이브러리는 파이썬에서 음성 인터페이스를 개발하기위한 것입니다. 여기에는 전통적인 스마트 스피커와 같은 Raspberry Pi 응용 프로그램에서 Django 웹 응용 프로그램에 이르기까지 모든 것이 포함될 수 있습니다. 파이썬으로 내장 된 것은 음성 인터페이스를 제공 할 수 있습니다.
시스템 종속성이 충족되면 다음과 같이 라이브러리를 설치할 수 있습니다.
pip install spokestack이 라이브러리에는 Tflite 모델을 실행하는 방법이 필요합니다. 이 능력을 추가하는 두 가지 방법이 있습니다. 첫 번째는 전체 Tensorflow 라이브러리를 설치하는 것입니다.
전체 Tensorflow 패키지는 다음과 함께 설치됩니다.
pip install tensorflowRaspberry Pi 또는 이와 유사한 내장 장치와 같은 작은 발자국이 필요한 사용 사례에서는 Tflite 통역사를 설치하려고합니다.
pip install --extra-index-url https://google-coral.github.io/py-repo/ tflite_runtime휠을 설치할 수없는 경우 오디오 입력 및 출력을 위해 일부 시스템 종속성을 설치해야 할 수도 있습니다.
brew install lame portaudiosudo apt-get install portaudio19-dev libmp3lame-dev우리는 현재 기본적으로 Windows 10을 지원하지 않으며 Debian 의존성을 사용하여 Linux (WSL) 용 Windows 서브 시스템을 설치하는 것이 좋습니다. 그러나 기본 Windows 지원에서 작업하려면 풀 요청을 기꺼이 수락합니다.
Windows 10에서 spokestack 사용하기위한 또 다른 잠재적 인 길은 Anaconda입니다. 절름발이 의존성으로 인해 TTS (Text to Speech)를 지원하지 않습니다. 반면에 Portaudio는 conda 를 통해 설치할 수 있습니다.
conda install portaudio spokestack 사용을 시작하는 가장 빠른 방법은 사전 구성된 파이프 라인 인스턴스 중 하나를 사용하는 것입니다. 우리는 많은 일반적인 사용 사례에 맞는 여러 가지 프로파일을 제공합니다.
from spokestack . profile . wakeword_asr import WakewordSpokestackASR
pipeline = WakewordSpokestackASR . create (
"spokestack_id" , "spokestack_secret" , model_dir = "path_to_wakeword_model"
) 파이프 라인에 포함 된 내용을 세밀하게 제어하려면 SpeechPipeline 사용할 수 있습니다. 이것은 VAD (음성 활동 감지), Wakeword 및 ASR (자동 음성 감지)을 함께 연결하는 모듈입니다. VAD는 입력 장치에 의해 캡처 된 오디오 프레임을 듣고 음성이 있는지 확인합니다. 그렇다면 WakeWord 모델은 인식 훈련을받은 키워드를 찾는 오디오의 후속 프레임을 프로세스합니다. 키워드가 발견되면 파이프 라인이 활성화되고 음성 인식을 수행하여 후속 오디오를 전사로 변환합니다. SpeechPipeline 은 다음과 같이 초기화됩니다.
from spokestack . activation_timeout import ActivationTimeout
from spokestack . io . pyaudio import PyAudioInput
from spokestack . pipeline import SpeechPipeline
from spokestack . vad . webrtc import VoiceActivityDetector
from spokestack . wakeword . tflite import WakewordTrigger
from spokestack . asr . spokestack . speech_recognizer import SpeechRecognizer
mic = PyAudioInput ()
vad = VoiceActivityDetector ()
wake = WakewordTrigger ( "path_to_tflite_model" )
asr = SpeechRecognizer ( "spokestack_id" , "spokestack_secret" )
timeout = ActivationTimeout ()
pipeline = SpeechPipeline ( mic , [ vad , wake , asr , timeout ])
pipeline . run () 파이프 라인이 실행되었으므로 특정 이벤트에서 프로세스 결과에 액세스하는 것이 중요합니다. 예를 들어, 연설이 인식되면 recognize 이벤트가 있습니다. 이 이벤트를 사용하면 응답으로 코드를 파이프 라인 외부에서 실행할 수 있습니다. 응답 등록 프로세스는 파이프 라인 콜백으로 수행되며 다음 섹션에서 다룰 것입니다.
파이프 라인 콜백을 사용하면 음성 이벤트가 감지 될 때 추가 코드를 실행할 수 있습니다. 예를 들어, pipeline.event 에 함수를 등록하여 파이프 라인이 활성화 될 때 인쇄 할 수 있습니다.
@ pipeline . event
def on_activate ( context ):
print ( context . is_active )파이프 라인 콜백의 가장 중요한 사용 사례 중 하나는 NLU의 추가 처리를 위해 ASR 전사 스크립트에 액세스하는 것입니다. 성적표는 다음과 같이 액세스됩니다.
@ pipeline . event
def on_recognize ( context ):
print ( context . transcript )자연어 이해는 발화를 기계가 수행 할 수있는 구조화 된 데이터로 바꿉니다. 우리의 목적 상, 이것은 공동 의도 감지 및 슬롯 충전물입니다. 개념에 대한 자세한 내용은 여기를 참조하십시오. 우리는 의도를 사용자가 응용 프로그램에서 원하는 행동으로 생각하고 요청 된 조치를 이행하기위한 선택적 인수로 슬롯을 생각합니다. NLU 모델은 다음과 같이 초기화됩니다.
from spokestack . nlu . tflite import TFLiteNLU
nlu = TFLiteNLU ( "path_to_tflite_model" )NLU가 초기화되었으므로 이제 우리는 계속해서 해당 부분을 콜백에 추가 할 수 있습니다.
@ pipeline . event
def on_recognize ( context ):
results = nlu ( context . transcript ) 이름에서 알 수 있듯이 텍스트 to Speech는 텍스트를 음성 오디오로 변환합니다. 이것은 응용 프로그램에 목소리를주는 방법입니다. 스포크 스택 계정에 가입 할 때 TTS 음성 하나를 무료로 제공하지만 진정으로 맞춤형 음성을 훈련하려면 저희에게 연락 할 수 있습니다. TTS API 키는 SpeechRecognizer 와 동일합니다. 기본 TTS 초기화는 다음과 같습니다.
from spokestack . tts . manager import TextToSpeechManager
from spokestack . tts . clients . spokestack import TextToSpeechClient
from spokestack . io . pyaudio import PyAudioOutput
client = TextToSpeechClient ( "spokestack_id" , "spokestack_secret" )
output = PyAudioOutput ()
manager = TextToSpeechManager ( client , output )
manager . synthesize ( "welcome to spokestack" )간단한 TTS 콜백을 보여주기 위해 ASR이 인식 한 내용을 읽는 내용을 설정하겠습니다.
@ pipeline . event
def on_recognize ( context ):
manager . synthesize ( context . transcript )루트 프로젝트 디렉토리에서 :
cd docs
make clean && make html이 프로젝트는 PYPI를 사용하여 배포됩니다. 다음은 설치를 위해 빌드하는 명령입니다.
python setup.py clean --all ; rm -r ./dist
python setup.py sdist bdist_wheel꼬기는 휠과 소스 분포를 업로드하는 데 사용됩니다.
twine upload dist/ * 저작권 2021 Spokestack, Inc.
Apache 라이센스, 버전 2.0 ( "라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 것 외에는이 파일을 사용할 수 없습니다. 여기에서 라이센스 사본을 얻을 수 있습니다
해당 법률에 의해 요구되거나 서면에 동의하지 않는 한, 라이센스에 따라 배포 된 소프트웨어는 명시 적 또는 묵시적 보증 또는 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오.