Skip to main content

Spokestack Python

GitHub license CircleCI PyPI version Coverage Status

Welcome to Spokestack Python! This library is intended for developing voice interfaces in Python. This can include anything from Raspberry Pi applications like traditional smart speakers to Django web applications. Anything built in Python can be given a voice interface.

Get Started

Installation with pip

Once system dependencies have been satisfied, you can install the library with the following.

pip install spokestack

Install Tensorflow

This library requires a way to run TFLite models. There are two ways to add this ability. The first is installing the full Tensorflow library.

The full Tensorflow package is installed with the following:

pip install tensorflow

TFLite Interpreter (Embedded Devices)

In use cases where you require a small footprint, such as on a Raspberry Pi or similar embedded devices, you will want to install the TFLite Interpreter.

pip install --extra-index-url https://google-coral.github.io/py-repo/ tflite_runtime

System Dependencies (Optional)

If you are unable to install the wheel, you may have to install some system dependencies for audio input and output.

macOS

brew install lame portaudio

Debian/Ubuntu

sudo apt-get install portaudio19-dev libmp3lame-dev

Windows

We currently do not support Windows 10 natively, and recommend you install Windows Subsystem for Linux (WSL) with the Debian dependencies. However, if you would like to work on native Windows support, we will gladly accept pull requests.

Another potential avenue for using spokestack on Windows 10 is from anaconda. This is without support for Text To Speech (TTS) though due to the Lame dependency. PortAudio, on the other hand, can be installed via conda.

conda install portaudio

Usage

Profiles

The quickest way to start using spokestack is by using one of the pre-configured pipeline instances. We offer several of these Profiles, which fit many general use cases.

from spokestack.profile.wakeword_asr import WakewordSpokestackASR


pipeline = WakewordSpokestackASR.create(
    "spokestack_id", "spokestack_secret", model_dir="path_to_wakeword_model"
)

Speech Pipeline

If you would like fine-grained control over what is included in the pipeline, you can use SpeechPipeline. This is the module that ties together VAD (voice activity detection), wakeword, and ASR (automated speech detection). The VAD listens to a frame of audio captured by the input device to determine if speech is present. If it is, the wakeword model processes subsequent frames of audio looking for the keyword it has been trained to recognize. If the keyword is found, the pipeline is activated and performs speech recognition, converting the subsequent audio into a transcript. The SpeechPipeline is initialized like this:

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

Now that the pipeline is running, it becomes important to access the results from processes at certain events. For example, when speech is recognized there is a recognize event. These events allow code to be executed outside the pipeline in response. The process of registering a response is done with a pipeline callback, which we will cover in the next section.

Pipeline Callbacks

Pipeline callbacks allow additional code to be executed when a speech event is detected. For example, we can print when the pipeline is activated by registering a function with the pipeline.event decorator.

@pipeline.event
def on_activate(context):
    print(context.is_active)

One of the most important use cases for a pipeline callback is accessing the ASR transcript for additional processing by the NLU. The transcript is accessed with the following:

@pipeline.event
def on_recognize(context):
    print(context.transcript)

Natural Language Understanding (NLU)

Natural Language Understanding turns an utterance into structured data a machine can act on. For our purposes, this is joint intent detection and slot filling. You can read more about the concepts here. We like to think of intents as the action a user desires from an application, and slots as the optional arguments to fulfill the requested action. Our NLU model is initialized like this:

from spokestack.nlu.tflite import TFLiteNLU

nlu = TFLiteNLU("path_to_tflite_model")

Now that the NLU is initialized we can go ahead and add that part to the callback.

@pipeline.event
def on_recognize(context):
    results = nlu(context.transcript)

Text To Speech (TTS)

Text To Speech, as the name implies, converts text into spoken audio. This the method for giving your application a voice. We provide one TTS voice for free when you sign up for a Spokestack account, but you can contact us to train a truly custom voice. The TTS API keys are the same as SpeechRecognizer. The basic TTS initialization is the following:

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

To demonstrate a simple TTS callback let's set up something that reads back what the ASR recognized:

@pipeline.event
def on_recognize(context):
    manager.synthesize(context.transcript)

Documentation

Build the docs

From the root project directory:

cd docs
make clean && make html

Deployment

This project is distributed using PyPI. The following is the command to build for installation.

python setup.py clean --all; rm -r ./dist
python setup.py sdist bdist_wheel

Twine is used to upload the wheel and source distribution.

twine upload dist/*

License

Copyright 2021 Spokestack, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License here

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Metadata

Release files for spokestack 0.0.22

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spokestack 0.0.22
File Size Uploaded Provenance Actions
spokestack-0.0.22.tar.gz 1.8 MB Without provenance Details for spokestack-0.0.22.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for spokestack 0.0.22
File Actions
spokestack-0.0.22-pp37-pypy37_pp73-win32.whl PyPy 3.7 PyPy 3.7 7.3 Windows x86-32 Details for spokestack-0.0.22-pp37-pypy37_pp73-win32.whl
spokestack-0.0.22-pp37-pypy37_pp73-manylinux2010_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-pp37-pypy37_pp73-manylinux2010_x86_64.whl
spokestack-0.0.22-pp37-pypy37_pp73-manylinux1_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-pp37-pypy37_pp73-manylinux1_x86_64.whl
spokestack-0.0.22-pp37-pypy37_pp73-macosx_10_9_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64 Details for spokestack-0.0.22-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
spokestack-0.0.22-pp36-pypy36_pp73-win32.whl PyPy 3.6 PyPy 3.6 7.3 Windows x86-32 Details for spokestack-0.0.22-pp36-pypy36_pp73-win32.whl
spokestack-0.0.22-pp36-pypy36_pp73-manylinux2010_x86_64.whl PyPy 3.6 PyPy 3.6 7.3 Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-pp36-pypy36_pp73-manylinux2010_x86_64.whl
spokestack-0.0.22-pp36-pypy36_pp73-manylinux1_x86_64.whl PyPy 3.6 PyPy 3.6 7.3 Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-pp36-pypy36_pp73-manylinux1_x86_64.whl
spokestack-0.0.22-pp36-pypy36_pp73-macosx_10_9_x86_64.whl PyPy 3.6 PyPy 3.6 7.3 macOS 10.9+ x86-64 Details for spokestack-0.0.22-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
spokestack-0.0.22-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for spokestack-0.0.22-cp39-cp39-win_amd64.whl
spokestack-0.0.22-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details for spokestack-0.0.22-cp39-cp39-win32.whl
spokestack-0.0.22-cp39-cp39-manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-cp39-cp39-manylinux2010_x86_64.whl
spokestack-0.0.22-cp39-cp39-manylinux2010_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-32 Details for spokestack-0.0.22-cp39-cp39-manylinux2010_i686.whl
spokestack-0.0.22-cp39-cp39-manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-cp39-cp39-manylinux1_x86_64.whl
spokestack-0.0.22-cp39-cp39-manylinux1_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-32 Details for spokestack-0.0.22-cp39-cp39-manylinux1_i686.whl
spokestack-0.0.22-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details for spokestack-0.0.22-cp39-cp39-macosx_10_9_x86_64.whl
spokestack-0.0.22-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for spokestack-0.0.22-cp38-cp38-win_amd64.whl
spokestack-0.0.22-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details for spokestack-0.0.22-cp38-cp38-win32.whl
spokestack-0.0.22-cp38-cp38-manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-cp38-cp38-manylinux2010_x86_64.whl
spokestack-0.0.22-cp38-cp38-manylinux2010_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-32 Details for spokestack-0.0.22-cp38-cp38-manylinux2010_i686.whl
spokestack-0.0.22-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-cp38-cp38-manylinux1_x86_64.whl
spokestack-0.0.22-cp38-cp38-manylinux1_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-32 Details for spokestack-0.0.22-cp38-cp38-manylinux1_i686.whl
spokestack-0.0.22-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details for spokestack-0.0.22-cp38-cp38-macosx_10_9_x86_64.whl
spokestack-0.0.22-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details for spokestack-0.0.22-cp37-cp37m-win_amd64.whl
spokestack-0.0.22-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details for spokestack-0.0.22-cp37-cp37m-win32.whl
spokestack-0.0.22-cp37-cp37m-manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-cp37-cp37m-manylinux2010_x86_64.whl
spokestack-0.0.22-cp37-cp37m-manylinux2010_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32 Details for spokestack-0.0.22-cp37-cp37m-manylinux2010_i686.whl
spokestack-0.0.22-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-cp37-cp37m-manylinux1_x86_64.whl
spokestack-0.0.22-cp37-cp37m-manylinux1_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 Details for spokestack-0.0.22-cp37-cp37m-manylinux1_i686.whl
spokestack-0.0.22-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details for spokestack-0.0.22-cp37-cp37m-macosx_10_9_x86_64.whl
spokestack-0.0.22-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details for spokestack-0.0.22-cp36-cp36m-win_amd64.whl
spokestack-0.0.22-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details for spokestack-0.0.22-cp36-cp36m-win32.whl
spokestack-0.0.22-cp36-cp36m-manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Details for spokestack-0.0.22-cp36-cp36m-manylinux2010_x86_64.whl
spokestack-0.0.22-cp36-cp36m-manylinux2010_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32 Details for spokestack-0.0.22-cp36-cp36m-manylinux2010_i686.whl
spokestack-0.0.22-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details for spokestack-0.0.22-cp36-cp36m-manylinux1_x86_64.whl
spokestack-0.0.22-cp36-cp36m-manylinux1_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32 Details for spokestack-0.0.22-cp36-cp36m-manylinux1_i686.whl
spokestack-0.0.22-cp36-cp36m-macosx_10_9_x86_64.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64 Details for spokestack-0.0.22-cp36-cp36m-macosx_10_9_x86_64.whl

Total release size: 18.2 MB

Release files / spokestack-0.0.22.tar.gz

Download URL spokestack-0.0.22.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
68c422eaf1bf439a791bf23e3e62f4cf67b1e2c007ece91910af91971bd39689
BLAKE2b-256 checksum
How to use checksums
e81151e7a250230a729864c8cbde9e403afb1e6c3c49f2eebfc70f0415869135
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp37-pypy37_pp73-win32.whl

Download URL spokestack-0.0.22-pp37-pypy37_pp73-win32.whl
Size 160.6 kB
Tags PyPy 3.7 PyPy 3.7 7.3 Windows x86-32
SHA-256 checksum
How to use checksums
d8f89679f54df9cdffe1b7f7d79f3a5ed8f72c6661496961a2494ee1a63e3272
BLAKE2b-256 checksum
How to use checksums
36ee4d148b6c86cb2c7beab8e276752bcdaaf01fab9020abac135ae2c74dddf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp37-pypy37_pp73-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-pp37-pypy37_pp73-manylinux2010_x86_64.whl
Size 249.0 kB
Tags Linux glibc 2.12+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
45ddbf4efbd78b6a138ae5ecfac82844b0ebb4a31aa7b06320c703ea44c6bdc4
BLAKE2b-256 checksum
How to use checksums
d139ba0c7073b2960c094ddf65805eb82a9ad57c429013302934233b4922ae1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp37-pypy37_pp73-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-pp37-pypy37_pp73-manylinux1_x86_64.whl
Size 249.0 kB
Tags Linux glibc 2.5+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
041591fec13560b253580d422c02c837182dcc095a17ecfc5f457c418bbe84ac
BLAKE2b-256 checksum
How to use checksums
ba6242c04397959dddd821dc82e0bfa84c3c223e7ba7fd3ddc4be21704ca6e48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp37-pypy37_pp73-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Size 249.6 kB
Tags PyPy 3.7 PyPy 3.7 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
0f44b618200f6d6ecb6a04abab471da012661807b2472c2133ff1d452df1739a
BLAKE2b-256 checksum
How to use checksums
0b414c0410db64937299f5d981cde320ec8ff5cd5afff1ca68b8f97fd38d31cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp36-pypy36_pp73-win32.whl

Download URL spokestack-0.0.22-pp36-pypy36_pp73-win32.whl
Size 160.6 kB
Tags PyPy 3.6 PyPy 3.6 7.3 Windows x86-32
SHA-256 checksum
How to use checksums
0f4b55f066491c1f3048e03bc2693f15c51c007c8aa649aec726b57f81c04d2b
BLAKE2b-256 checksum
How to use checksums
c1ce7229576448542def20b6fbddfa3c392bc4892d089ecf9800f3dd7514032b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp36-pypy36_pp73-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-pp36-pypy36_pp73-manylinux2010_x86_64.whl
Size 249.0 kB
Tags Linux glibc 2.12+ x86-64 PyPy 3.6 PyPy 3.6 7.3
SHA-256 checksum
How to use checksums
484d48c589df8995e82004a08e52628ebdbea4e9ea7980feab1e585ccfdaf952
BLAKE2b-256 checksum
How to use checksums
de0a66765f504a95887ce74103532de75d4bc746ad846cfdc14204241d19513a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp36-pypy36_pp73-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-pp36-pypy36_pp73-manylinux1_x86_64.whl
Size 249.0 kB
Tags Linux glibc 2.5+ x86-64 PyPy 3.6 PyPy 3.6 7.3
SHA-256 checksum
How to use checksums
49320ea843dc13c1c77ad895c8ec575d287bb22a3ace0a2f8870e2dfb962cbde
BLAKE2b-256 checksum
How to use checksums
e119b3bedf4bd12a1407a383b6916820a62ebf24b683eded0740f0a90bc1b965
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-pp36-pypy36_pp73-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Size 249.5 kB
Tags PyPy 3.6 PyPy 3.6 7.3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
1ef06b2fe8e6c7a11c5574d5f5d6f43632408c632eca2950ca02f8a93b693759
BLAKE2b-256 checksum
How to use checksums
93ada760d89e335c5d21b1568b8785a164edf9d1379f415a427111ca100ccaf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-win_amd64.whl

Download URL spokestack-0.0.22-cp39-cp39-win_amd64.whl
Size 185.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
2208dd2310b0e30eadb6128c3eb729e4d83563fbc2faa8b30c1daa80db0862f7
BLAKE2b-256 checksum
How to use checksums
6e6ea79e3876806d1a138acf1cbd2c73cc73708b08a0c3259d005e4ede3a7aec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-win32.whl

Download URL spokestack-0.0.22-cp39-cp39-win32.whl
Size 167.4 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
52848c7a2341bcfd88eb8998ffe0e4090edfa53f96df8d81b142f1617e19e165
BLAKE2b-256 checksum
How to use checksums
5a57a901e97c2e9256e327126584532c90d146e2a0717ec947659ba359984ef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-cp39-cp39-manylinux2010_x86_64.whl
Size 795.9 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
a2ac29fd520a26293573cc3d2c03c24f06263496ceba57ef62cd1e705003577c
BLAKE2b-256 checksum
How to use checksums
a24e2b401fdeb8bf5efa4575b182c96192bc1da8dd09e3c84438527fcc0471a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-manylinux2010_i686.whl

Download URL spokestack-0.0.22-cp39-cp39-manylinux2010_i686.whl
Size 706.6 kB
Tags CPython 3.9 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
eee10d0511eda9d756923211efa48c53f863e33d644a48dc565e87740cee68c7
BLAKE2b-256 checksum
How to use checksums
22ba2b67bbaafed77fbdb74c9267be05d40bb34a274af53088a96b9f890c1b85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-cp39-cp39-manylinux1_x86_64.whl
Size 795.9 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
dd5e08f39efe017347d65a190acf7361c00b45e75a698091ba521c41cc80ad70
BLAKE2b-256 checksum
How to use checksums
20c2f4e951b9ce41a68480e8474eb83b27f36fef46e8c2893a52684f024aada0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-manylinux1_i686.whl

Download URL spokestack-0.0.22-cp39-cp39-manylinux1_i686.whl
Size 706.6 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
e2358a63f57875778aba3ec9ca72ceb8cc5b400babb39da5a20458f1897a1f78
BLAKE2b-256 checksum
How to use checksums
01669d70e2ec8c60d27ba915440c83308ac8294930c290074c5f1a1c2d176b27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp39-cp39-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-cp39-cp39-macosx_10_9_x86_64.whl
Size 284.1 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
7bd83a1c3159d781ffdf11f18ea386e2d163956918d8f21353b991033bb416bb
BLAKE2b-256 checksum
How to use checksums
bea24d7742aa7a660b87041d4d8e534021482b7780d81d9d697413694701b1d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-win_amd64.whl

Download URL spokestack-0.0.22-cp38-cp38-win_amd64.whl
Size 185.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
b9b74699a9cfbdaaddbd8a5d496d65c78dc92c38025d37b2fc07a0861f361bc2
BLAKE2b-256 checksum
How to use checksums
56199d9f3cdfd52907afebc90556b2cd484049438c6983334a5167e317a035cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-win32.whl

Download URL spokestack-0.0.22-cp38-cp38-win32.whl
Size 167.4 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
ed0c09647217fffff5351ee9035cd5a51aa44c12e2e45959e62be634fea2f89c
BLAKE2b-256 checksum
How to use checksums
751307c32fe03edae0e20be0e3c9bd75f46499ba45168ce72c2eb248afd262d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-cp38-cp38-manylinux2010_x86_64.whl
Size 797.2 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
04f17e149c925b6e9f80dc710887e07ed84da69da6496f141046aa70c79c9a4d
BLAKE2b-256 checksum
How to use checksums
1dd79b064dc186676aa52e7b1818865c5146273fefffb7cb66bc1b8510f98704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-manylinux2010_i686.whl

Download URL spokestack-0.0.22-cp38-cp38-manylinux2010_i686.whl
Size 710.2 kB
Tags CPython 3.8 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
be8e2354b00f27ed102548367331880c42cbbb94e9cde8cf2b840720ad8c3e70
BLAKE2b-256 checksum
How to use checksums
f93457887361d5036b2bff492ba6c5ca653c7d415d80bc741cbfc8eb2103c6fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-cp38-cp38-manylinux1_x86_64.whl
Size 797.2 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
aa39283c7724238e10bbb881bed1e523b035ad668938125a9e72440bb3d14815
BLAKE2b-256 checksum
How to use checksums
f7868e8a035356bad3cabe270ebd5c6c14898aa80feddb82f2dc604907953798
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-manylinux1_i686.whl

Download URL spokestack-0.0.22-cp38-cp38-manylinux1_i686.whl
Size 710.2 kB
Tags CPython 3.8 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
7a8e19458053b2ec361dc9a2c2127d80e43b5ac2e326501bbf8f0e2eb3c53714
BLAKE2b-256 checksum
How to use checksums
7bee5a2febf63e2c2f3b9153645d7de034d579d0a9464a50ee2e5aa31a2d953d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp38-cp38-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-cp38-cp38-macosx_10_9_x86_64.whl
Size 283.9 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
478f01fdf87fe94b2326dedfc76c27359fd886a1b1335bb50109cc2e82f9e5fc
BLAKE2b-256 checksum
How to use checksums
4878d3a19beb8e4e6f36eba05c077339d3b89d87b73fe90d249c75cd18a84f9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-win_amd64.whl

Download URL spokestack-0.0.22-cp37-cp37m-win_amd64.whl
Size 185.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
b70ca8b7a4abe366ae36c3b5d6d66a95791bdcb52f6025f13b189d49197d6d7f
BLAKE2b-256 checksum
How to use checksums
bbac40acda22ade9da1da73982221237174a633e2713b75c53c186f25fe6333c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-win32.whl

Download URL spokestack-0.0.22-cp37-cp37m-win32.whl
Size 166.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
c6c547969b4ff48f8b06f7a5240ce4ddf3b040fe1658a2e866628a1e9831fb38
BLAKE2b-256 checksum
How to use checksums
aa472bcbfedbbb3632a895a9332ac543e3f6bbd4a366b1b6f647ea0a3adee25b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-cp37-cp37m-manylinux2010_x86_64.whl
Size 784.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
21d7c051638a4fdc430e7060a0f46a4655e584d1138311ff34c122d47b68e8f7
BLAKE2b-256 checksum
How to use checksums
69a8482abfc9631d434f5bb4a52558a07795c59a6bec3cdc9be491ff064ef5ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-manylinux2010_i686.whl

Download URL spokestack-0.0.22-cp37-cp37m-manylinux2010_i686.whl
Size 699.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
0eeceefb0f6b53c260344f68fe4e5fab2d1a60517b9a37841830fb15f0a057f2
BLAKE2b-256 checksum
How to use checksums
0349bd09f61b8bc26beb0ff6ad8c1a692b047ab75a4bae28bd7bca4a5b8c0e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-cp37-cp37m-manylinux1_x86_64.whl
Size 784.4 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c8a3c309dccc26ffb9a61eeef23ed3d684bd85c9c5b5b3a91972f98769c8f018
BLAKE2b-256 checksum
How to use checksums
dc0cf740c34f4199278a414b8fa4fff5c4b9c4abe4034522d24bfb705a3517fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-manylinux1_i686.whl

Download URL spokestack-0.0.22-cp37-cp37m-manylinux1_i686.whl
Size 699.9 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
92d0c10d607bf33235bda0512370cf141414530b0c6adee92856b92eb5ff44ee
BLAKE2b-256 checksum
How to use checksums
73738d6dacca8a1bdbd2b8b6ae285b079eef7cc5da02de20e72de92b826a348a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-cp37-cp37m-macosx_10_9_x86_64.whl
Size 283.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c158ef3fab79a4f76814dfb6eefa61ccab2ab05daf8b27edf4045f622da6852e
BLAKE2b-256 checksum
How to use checksums
695c71a15f653fc3b1a8a1acb9dd868625503a1c09ccc6925d982f426727730f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-win_amd64.whl

Download URL spokestack-0.0.22-cp36-cp36m-win_amd64.whl
Size 185.5 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
dbd065c5bfd304e943ced2dfd9bab84f7222ec1ea748953327749745ce949875
BLAKE2b-256 checksum
How to use checksums
535dbd4d279812968bed8655dd2f93b5725d81a5dfda2a537b7a038f2753f3de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-win32.whl

Download URL spokestack-0.0.22-cp36-cp36m-win32.whl
Size 167.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
6cded221fe2f45fb9b76ef76719a98d2e4382ca80f21604aff548b09d54bedec
BLAKE2b-256 checksum
How to use checksums
8502fdd0aea46f17ac16a03ae4a072c952f21b89e15a81e2c795659904a869ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-manylinux2010_x86_64.whl

Download URL spokestack-0.0.22-cp36-cp36m-manylinux2010_x86_64.whl
Size 783.9 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
c708c4d61daa1941382840cd9f0610e18983e1921663c8e1cd6fc274ed22f432
BLAKE2b-256 checksum
How to use checksums
60c9bc33e13d2fe6a37eba72aeb296351dc4b0714b8e95b5f7b1758f18b1945e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-manylinux2010_i686.whl

Download URL spokestack-0.0.22-cp36-cp36m-manylinux2010_i686.whl
Size 698.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
b36f9ce78fd9f869805ee5b5842473e7e14e6c58f1b1ce0c984aa2478565477c
BLAKE2b-256 checksum
How to use checksums
e8ef681667a5832dd443143b36f31ab6c9954f04b3454cc2acb7534c9f138918
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-manylinux1_x86_64.whl

Download URL spokestack-0.0.22-cp36-cp36m-manylinux1_x86_64.whl
Size 783.9 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
932a86a76cbe1b3340221adbcb900660b464601812296409134074f58ab7a5c3
BLAKE2b-256 checksum
How to use checksums
7b0fa3cf28fb94c3d63a94382724250a0339f4fafee66d24b0c47b0ba574ad69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-manylinux1_i686.whl

Download URL spokestack-0.0.22-cp36-cp36m-manylinux1_i686.whl
Size 698.3 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
23cabbfe74462798306b1b6b4955753f62488d064a760e10390d0f780a71ac1f
BLAKE2b-256 checksum
How to use checksums
792481255f6d210e260ccdd021eb051229e4a0cdc9566cfacbb1dee6aacd630c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / spokestack-0.0.22-cp36-cp36m-macosx_10_9_x86_64.whl

Download URL spokestack-0.0.22-cp36-cp36m-macosx_10_9_x86_64.whl
Size 283.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
61572e4039e6868187b4674cfd645506c74c0e22875a39a32c7c65292d621b60
BLAKE2b-256 checksum
How to use checksums
3018489b51321f45f4a1e0f28265679f113c2e85ea6fb0e8e73b8313552e493a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Security for spokestack 0.0.22

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page