A Python client for interacting with SlashML servicesDeveloped by SlashML.
Project description
SlashML Python client
One API for all your machine learning needs.
Installation guide
pip install slashml
Quickstart
Convert text to audio
from slashml import TextToSpeech
import time
# Initialize model
model = TextToSpeech()
service_provider = TextToSpeech.ServiceProvider.GOOGLE
# Submit speechification request
job = model.speechify(text="To be or not to be, that is the question!", service_provider=service_provider)
assert job.status != "ERROR", f"{job}"
print(f"Job ID: {job.id}")
# check job status
response = model.status(job.id, service_provider=service_provider)
while response.status == "IN_PROGRESS":
time.sleep(30)
response = model.status(job.id, service_provider=service_provider)
print(f"Response = {response}. Retrying in 30 seconds")
print(response)
Transcribe an audio file
from slashml import SpeechToText
import time
# Initialize model
model = SpeechToText()
service_provider = SpeechToText.ServiceProvider.WHISPER
# Submit transcription request
job = model.transcribe(upload_url="https://slashml.s3.ca-central-1.amazonaws.com/c7d38026-3ab4-4a04-ad9e-b6679ab79a87", service_provider=service_provider)
assert job.status != "ERROR", f"{job}"
print(f"Job ID: {job.id}")
# check job status
response = model.status(job.id, service_provider=service_provider)
while response.status == "IN_PROGRESS":
time.sleep(5)
response = model.status(job.id, service_provider=service_provider)
print(f"Response = {response}. Retrying in 5 seconds")
print(response)
Summarize a text input
from slashml import TextSummarization
import time
# Initialize model
model = TextSummarization()
service_provider = TextSummarization.ServiceProvider.OPENAI
# Submit summariztion request
job = model.summarize(text="There are of course kinds of thinking that can be done without writing. If you don't need to go too deeply into a problem, you can solve it without writing. If you're thinking about how two pieces of machinery should fit together, writing about it probably won't help much. And when a problem can be described formally, you can sometimes solve it in your head. But if you need to solve a complicated, ill-defined problem, it will almost always help to write about it. Which in turn means that someone who's not good at writing will almost always be at a disadvantage in solving such problems.", service_provider=service_provider)
assert job.status != "ERROR", f"{job}"
print(f"Job ID: {job.id}")
# check job status
response = model.status(job.id, service_provider=service_provider)
while response.status == "IN_PROGRESS":
time.sleep(5)
response = model.status(job.id, service_provider=service_provider)
print(f"Response = {response}. Retrying in 5 seconds")
print(response)
View the list of service providers available
from slashml import TextToSpeech
print(TextToSpeech.ServiceProvider.choices())
# you can repeat the same thing for all services
# print(TextSummarization.ServiceProvider.choices())
# print(SpeechToText.ServiceProvider.choices())
Introduction
Overview
This is the Python client (SDK) for SlashML. It allows users to use the endpoints available and active https://docs.slashml.com.
Set up and usage
There is a daily limit (throttling) on the number of calls the user performs. The code can run without specifying the API key. The throttling kicks in and prevents new jobs after exceeding 10 calls per minute.
If the user intends on using the service more frequently, it is recommended to generate an token or API key from https://www.slashml.com/settings/api-key. You can pass the API key when creating a model, if you don't the api will still work but you will be throttled.
from slashml import TextToSpeech
# Initialize model
text_to_speech = TextToSpeech(api_key="YOUR_API_KEY")
# summarizer = TextSummarization(api_key="YOUR_API_KEY")
# speech_to_text = SpeechToText(api_key="YOUR_API_KEY")
If the user preferes using the API calls directly, the documentation is available here.
Available service providers
Speech-to-text
For transcription, SlashML supports the following service providers:
- AssemblyAI
- AWS
- Whisper (OpenAI)
Summarization
For text summarization, SlashML supports the following service providers:
- Meta Bart (thru Huggin-face)
- Da-Vinci (OpenAI)
Text-to-Speech
For speechification, SlashML supports the following service providers:
Documentation
For production ready use cases, look at the examples folder
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.