
Selamat datang di Spokestack Python! Perpustakaan ini dimaksudkan untuk mengembangkan antarmuka suara di Python. Ini dapat mencakup apa saja dari aplikasi Raspberry PI seperti speaker pintar tradisional hingga aplikasi web Django. Apa pun yang dibangun di Python dapat diberikan antarmuka suara.
Setelah dependensi sistem telah dipenuhi, Anda dapat menginstal perpustakaan dengan yang berikut.
pip install spokestackPerpustakaan ini membutuhkan cara untuk menjalankan model TFLITE. Ada dua cara untuk menambahkan kemampuan ini. Yang pertama adalah menginstal perpustakaan TensorFlow lengkap.
Paket TensorFlow lengkap diinstal dengan yang berikut:
pip install tensorflowDalam kasus penggunaan di mana Anda memerlukan jejak kecil, seperti pada pi raspberry atau perangkat tertanam serupa, Anda ingin menginstal interpreter tflite.
pip install --extra-index-url https://google-coral.github.io/py-repo/ tflite_runtimeJika Anda tidak dapat menginstal roda, Anda mungkin harus menginstal beberapa dependensi sistem untuk input dan output audio.
brew install lame portaudiosudo apt-get install portaudio19-dev libmp3lame-devKami saat ini tidak mendukung Windows 10 secara asli, dan merekomendasikan Anda menginstal Subsistem Windows untuk Linux (WSL) dengan dependensi Debian. Namun, jika Anda ingin mengerjakan dukungan Windows asli, kami dengan senang hati akan menerima permintaan tarik.
Jalan potensial lain untuk menggunakan spokestack di Windows 10 adalah dari Anaconda. Ini tanpa dukungan untuk teks ke bicara (TTS) meskipun karena ketergantungan yang pincang. PortAudio, di sisi lain, dapat diinstal melalui conda .
conda install portaudio Cara tercepat untuk mulai menggunakan spokestack adalah dengan menggunakan salah satu instance pipa yang telah dikonfigurasi sebelumnya. Kami menawarkan beberapa profil ini, yang sesuai dengan banyak kasus penggunaan umum.
from spokestack . profile . wakeword_asr import WakewordSpokestackASR
pipeline = WakewordSpokestackASR . create (
"spokestack_id" , "spokestack_secret" , model_dir = "path_to_wakeword_model"
) Jika Anda ingin kontrol berbutir halus atas apa yang termasuk dalam pipa, Anda dapat menggunakan SpeechPipeline . Ini adalah modul yang mengikat bersama -sama VAD (Deteksi Aktivitas Suara), Kata Wake, dan ASR (Deteksi Bicara Otomatis). VAD mendengarkan bingkai audio yang ditangkap oleh perangkat input untuk menentukan apakah ada pidato. Jika ya, model Wakword memproses bingkai audio berikutnya mencari kata kunci yang telah dilatih untuk dikenali. Jika kata kunci ditemukan, pipa diaktifkan dan melakukan pengenalan suara, mengubah audio berikutnya menjadi transkrip. The SpeechPipeline diinisialisasi seperti ini:
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 () Sekarang setelah pipa berjalan, penting untuk mengakses hasil dari proses di peristiwa tertentu. Misalnya, ketika pidato dikenali ada peristiwa recognize . Peristiwa ini memungkinkan kode untuk dieksekusi di luar pipa sebagai tanggapan. Proses mendaftarkan respons dilakukan dengan panggilan balik pipa, yang akan kami bahas di bagian selanjutnya.
Callback Pipeline memungkinkan kode tambahan untuk dieksekusi ketika acara pidato terdeteksi. Misalnya, kita dapat mencetak saat pipa diaktifkan dengan mendaftarkan fungsi dengan pipeline.event Event Decorator.
@ pipeline . event
def on_activate ( context ):
print ( context . is_active )Salah satu kasus penggunaan paling penting untuk panggilan balik pipa adalah mengakses transkrip ASR untuk pemrosesan tambahan oleh NLU. Transkrip diakses dengan yang berikut:
@ pipeline . event
def on_recognize ( context ):
print ( context . transcript )Pemahaman bahasa alami mengubah ucapan menjadi data terstruktur yang dapat ditindaklanjuti oleh mesin. Untuk tujuan kami, ini adalah deteksi niat bersama dan pengisian slot. Anda dapat membaca lebih lanjut tentang konsep di sini. Kami ingin menganggap maksud sebagai tindakan yang diinginkan pengguna dari suatu aplikasi, dan slot sebagai argumen opsional untuk memenuhi tindakan yang diminta. Model NLU kami diinisialisasi seperti ini:
from spokestack . nlu . tflite import TFLiteNLU
nlu = TFLiteNLU ( "path_to_tflite_model" )Sekarang setelah NLU diinisialisasi, kita dapat melanjutkan dan menambahkan bagian itu ke panggilan balik.
@ pipeline . event
def on_recognize ( context ):
results = nlu ( context . transcript ) Teks untuk berbicara, sesuai namanya, mengubah teks menjadi audio yang diucapkan. Ini metode untuk memberikan suara Anda suara. Kami menyediakan satu suara TTS secara gratis ketika Anda mendaftar untuk akun SpokeStack, tetapi Anda dapat menghubungi kami untuk melatih suara yang benar -benar khusus. Kunci API TTS sama dengan SpeechRecognizer . Inisialisasi TTS dasar adalah sebagai berikut:
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" )Untuk mendemonstrasikan panggilan balik TTS sederhana, mari kita atur sesuatu yang membacakan kembali apa yang diakui ASR:
@ pipeline . event
def on_recognize ( context ):
manager . synthesize ( context . transcript )Dari direktori proyek root:
cd docs
make clean && make htmlProyek ini didistribusikan menggunakan PYPI. Berikut ini adalah perintah untuk membangun untuk instalasi.
python setup.py clean --all ; rm -r ./dist
python setup.py sdist bdist_wheelTwine digunakan untuk mengunggah roda dan distribusi sumber.
twine upload dist/ * Hak Cipta 2021 SpokeStack, Inc.
Berlisensi di bawah lisensi Apache, versi 2.0 ("lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan lisensi. Anda dapat memperoleh salinan lisensi di sini
Kecuali diharuskan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak yang didistribusikan di bawah lisensi didistribusikan berdasarkan "sebagaimana adanya", tanpa jaminan atau ketentuan dalam bentuk apa pun, baik tersurat maupun tersirat. Lihat lisensi untuk bahasa spesifik yang mengatur izin dan batasan di bawah lisensi.