Tinkoff Python VoiceKit API Library
Install from PyPi
pip install tinkoff-voicekit-clientBefore using you must have API_KEY and SECRET_KEY. You can get the keys by leaving a request on our website.
Examples of using VoiceKit client:
Call documentation for public methods
fromtinkoff_voicekit_clientimportClientSTTAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"client=ClientSTT(API_KEY, SECRET_KEY)
client.something_method.__doc__Methods initialize using config (Python dict) which satisfies one of the next json schema.
- recognize
fromtinkoff_voicekit_clientimportClientSTTAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"client=ClientSTT(API_KEY, SECRET_KEY)
audio_config= {
"encoding": "LINEAR16",
"sample_rate_hertz": 8000,
"num_channels": 1
}
# recognise method callresponse=client.recognize("path/to/audio/file", audio_config)
print(response)- streaming recognize
fromtinkoff_voicekit_clientimportClientSTTAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"client=ClientSTT(API_KEY, SECRET_KEY)
audio_config= {
"encoding": "LINEAR16",
"sample_rate_hertz": 8000,
"num_channels": 1
}
stream_config= {"config": audio_config}
# recognise stream method callwithopen("path/to/audio/file", "rb") assource:
responses=client.streaming_recognize(source, stream_config)
forresponseinresponses:
print(response)- long running recognize with uploader
fromtinkoff_voicekit_clientimportClientSTTAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"client=ClientSTT(API_KEY, SECRET_KEY)
audio_config= {
"encoding": "LINEAR16",
"sample_rate_hertz": 8000,
"num_channels": 1
}
request= {
"config": audio_config,
"group": "group_name"
}
file_path="path/to/file"audio_name_for_storage="pretty name"# this method automatically upload audio to long running storage and return uriprint(client.longrunning_recognize_with_uploader(file_path, request, audio_name_for_storage))Example of Voice Activity Detection configuration
vad= {}
vad["min_speech_duration"] =min_speech_durationvad["max_speech_duration"] =max_speech_durationvad["silence_duration_threshold"] =silence_duration_thresholdvad["silence_prob_threshold"] =silence_prob_thresholdvad["aggressiveness"] =aggressivenessmy_config= {}
my_config["vad"] =vadExample of input file:
Я жду вашего ответа. Вы готовы сделать перевод?
# Давайте уточним получателя. Как его зовут?
commented lines # will not be synthesis
- default
fromtinkoff_voicekit_clientimportClientTTSAPI_KEY="api_key"SECRET_KEY="secret_key"client=ClientTTS(API_KEY, SECRET_KEY)
audio_config= {
"audio_encoding": "LINEAR16",
"sample_rate_hertz": 48000
}
# use it if you want work with proto results# audio filerows_responses=client.streaming_synthesize("path/to/file/with/text", audio_config)
# textrows_responses=client.streaming_synthesize("Мой красивый текст", audio_config)
# use it if you want get audio file results# audio fileclient.synthesize_to_audio_wav("path/to/file/with/text", audio_config, "output/dir")
# textclient.synthesize_to_audio_wav("Мой красивый текст", audio_config, "output/dir")
# ssml. There are only tag <speak>client.synthesize_to_audio_wav("<speak>Мой красивый текст</speak>", audio_config, "output/dir", ssml=True)- change voice
fromtinkoff_voicekit_clientimportClientTTSAPI_KEY="api_key"SECRET_KEY="secret_key"client=ClientTTS(API_KEY, SECRET_KEY)
config= {
"audio_encoding": "RAW_OPUS",
"sample_rate_hertz": 48000,
"voice": {"name": "alyona"}
}
client.synthesize_to_audio_wav("Приве! Меня зовут Алена.", config)- get operation by id
fromtinkoff_voicekit_clientimportClientOperationsAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"operations=ClientOperations(API_KEY, SECRET_KEY)
running_operation_id="42"print(operations.get_operation({"id": running_operation_id}))- cancel operation by id
fromtinkoff_voicekit_clientimportClientOperationsAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"operations=ClientOperations(API_KEY, SECRET_KEY)
operation_filter= {"exact_id": "31"}
# return empty dict on successprint(operations.cancel_operation(operation_filter))fromtinkoff_voicekit_clientimportUploaderAPI_KEY="my_api_key"SECRET_KEY="my_secret_key"uploader=Uploader(API_KEY, SECRET_KEY)
path="path/to/file"print(uploader.upload(path, "object_name"))