ngChat Speech to Text and Text to Speech SDK
Project description
ngChat Speech SDK
Please contact info@seasalt.ai if you have any questions.
Speech-to-Text Example:
Prerequisites
You will need a ngChat speech-to-text service url to run this example. Please contact info@seasalt.ai and apply for it.
Install and import
To install ngChat Speech SDK:
pip install ngchat-speech-sdk
To import ngChat Speech SDK:
import ngchat_speech.speech as speechsdk
Recognition
In the example below, we show how to recognize speech from an audio file. You can also apply recognition to an audio stream.
Speech Configuration
Use the following code to create SpeechConfig (contact info@seasalt.ai for the service host):
speech_config = speechsdk.SpeechConfig(
host="ws://NGCHAT_STT_SERVER/client/ws/speech"
)
Audio Configuration
Use the following code to create AudioConfig.
# Code commented out is an example for recognition on an audio stream.
# audio_format = speechsdk.audio.AudioStreamFormat(
# samples_per_second=16000, bits_per_sample=16, channels=1)
# audio_stream = speechsdk.audio.PushAudioInputStream(stream_format=audio_format)
# audio_config = speechsdk.audio.AudioConfig(stream=audio_stream)
audio_config = speechsdk.audio.AudioConfig(filename="test.wav")
Recognizer initialization
SpeechRecognizer can be initialzed as follows:
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
audio_config=audio_config
)
Callbacks connection
SpeechRecognizer has 5 kinds of callbacks:
- Recognizing - called when recognition is in progress.
- Recognized - called when a single utterance is recognized.
- Canceled - called when a continuous recognition is interrupted.
- Session_started - called when a recognition session is started.
- Session_stopped - called when a recognition session is stopped.
To connect the callbacks:
speech_recognizer.recognizing.connect(
lambda evt: print(f"Recognizing: {evt.result.text}"))
speech_recognizer.recognized.connect(
lambda evt: print(f'Recognized: {evt.result.text}'))
speech_recognizer.canceled.connect(
lambda evt: print(f'Canceled: {evt}'))
speech_recognizer.session_started.connect(
lambda evt: print(f'Session_started: {evt}'))
speech_recognizer.session_stopped.connect(
lambda evt: print(f'Session_stopped: {evt}'))
Recognizing speech
Now it is ready to run SpeechRecognizer. SpeechRecognizer has two ways for speech recognition:
- Single-shot recognition - Performs recognition once. This is to recognize a single audio file. It stops recognition after a single utterance is recognized.
- Continuous recognition (async) - Asynchronously initiates continuous recognition on an audio stream. Recognition results are available through callback functions. To stop the continuous recognition, call stop_continuous_recognition_async().
# Code commented out is for recognition on an audio stream.
# speech_recognizer.start_continuous_recognition_async()
speech_recognizer.recognize_once()
Putting everything together
Now, put everything together and run the example:
import speech as speechsdk
import audio as audio
import asyncio
import threading
import sys
import time
if __name__=="__main__":
# this is an example to show how to use the ngChat Speech SDK to recognize once
try:
speech_config = speechsdk.SpeechConfig(
host="ws://NGCHAT_STT_SERVER/client/ws/speech"
)
audio_config = audio.AudioConfig(filename="test.wav")
speech_recognizer = speechsdk.SpeechRecognizer(
speech_config=speech_config,
audio_config=audio_config
)
speech_recognizer.recognizing.connect(
lambda evt: print(f"Recognizing: {evt.result.text}"))
speech_recognizer.recognized.connect(
lambda evt: print(f'Recognized: {evt.result.text}'))
speech_recognizer.canceled.connect(
lambda evt: print(f'Canceled: {evt}'))
speech_recognizer.session_started.connect(
lambda evt: print(f'Session_started: {evt}'))
speech_recognizer.session_stopped.connect(
lambda evt: print(f'Session_stopped: {evt}'))
speech_recognizer.recognize_once()
time.sleep(3)
except KeyboardInterrupt:
print("Caught keyboard interrupt. Canceling tasks...")
except Exception as e:
print(f"Exception: {e}")
finally:
sys.exit()
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.
Source Distribution
Built Distribution
File details
Details for the file ngchat-speech-sdk-0.1.3.tar.gz
.
File metadata
- Download URL: ngchat-speech-sdk-0.1.3.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 012901e6f759a2f748b098e4e499b16984b601164500d5d19cf474e09810886f |
|
MD5 | a4ab954c7419c9ba120c6d0cb2560abe |
|
BLAKE2b-256 | b7b3237e1714aba771fc74cfaf8d5f640782df823f2585fe812d2612920b3a42 |
File details
Details for the file ngchat_speech_sdk-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: ngchat_speech_sdk-0.1.3-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae6f2bf2e979854e0051ec45063b8b5eeab806f63b4e4ed373a9dfe9c441cfe |
|
MD5 | 2e63e27c0c2ac9b77f418af91ed4586d |
|
BLAKE2b-256 | 224eabc7ee63d8947a627ab1051bb326f9ef5e0fb93cb9edaa1a600837caebc3 |