the NBSapi is a python library that can help you to convert your text to speech, where you can hear it directly or save it to an audio file.
it currently working only on windows with sapi5
to use the NBSapi you just need to install the comtypes library by using
pip install comtypes
to install NBSapi you can use PIP
pip install NBSapi
to use the library you need to import it
from NBSapi import NBSapi
import time
#load the class
TTS = NBSapi()
#speak a text and wait
TTS.Speak("hello")
#speak without wait, (note: this step is required if you want to control the speech)
TTS.Speak("hello", 1)
#wait 0.1 sec before stop the speech
time.sleep(0.1)
TTS.Stop()
- solved a lot of problems
- added function to check if sapi is avalable and working without any problems
this library has a lot of functions that make the sapi 5 tts easy
is_sapi()
this function will return true or false\
Speak(text (string), flag (int))
this is the function that will speek text
you can use the flags that exists on the lib file\
SpeakToFile(text (string), file (string), flags (int))
create an audio file with the giving text and path
Pause()
pause the speech
Resume()
resume the speech
Stop()
Stop the Speech
GetVoice()
get the current voice information as a dict
SetVoice(voice (index, description, attribute, or object), key ("by_index", "by_description", "by_attribute", or "" for voice object))
Set the current voice, even by description, by attribute, by index starting from 0, or by object
GetVolume()
Get the Current volume
SetVolume(vol (int))
set the Current volume
GetRate()
Get the Current Rate
SetRate(Rate (int))
Set the Rate of the voice Between -10 and 10
GetVoices(attrs = "")
Get a list of dicts, each item has a voice information
so, you can use this list indexes to set the voice, it has the same order.
here also you can use attributes to get just the voices you need (take a look to tests folder)
GetAttribute(attr (string))
get an attribute of the selected voice such as Name, Age, Language, and Gender.
GetStatus(Property (string))
Get a state of any thing you want, you can use the declared variable that start with STS_
get the current SPVoice object
this library is new, so i will add a features to it as i can.
if you have any idea about this library please help with it.