At this moment of time voice assistants are usually not used frequently. Unfortunately, despite great potential main usage scenarios for normal people are:
But for blind people they can be much more helpful. In addition to the already listed scenarios blind people also can find the following scenarios also useful:
That is why I decided to fix this problem for my blind grandmother.
Since my grandmother is Russian, the only option to use a voice assistant is to buy a Yandex Station with Alice. This is the only Russian speaking voice assistant at the moment. Also, one of the killer features of it is creating custom scenarios called skills with help of API. It has really good integration with Yandex Cloud functions. Actually, to create “Hello World!” skill for Yandex Alice it is required only less than 15 lines of python code (excluding comments). You can find this example here.
To integrate Yandex Alice with telegram we just need to add a few lines more. Final script is here. As in previous artice we need to create cloud function. But this script in addition to telegram token we need tokens for Yandex Object Storage. We need to install Yandex Cloud CLI. Then to run the following command
yc iam access-key create --service-account-name {yourbucketname} \
--description "this key is for my bucket"
Example of output is on the screenshot below.
Yandex Object Storage is S3 compatible storage. Tokens in this output directly match with standard S3 tokens.
key_id
is AWS_SERVER_PUBLIC_KEY
and secret
is AWS_SERVER_SECRET_KEY
. We need to pass these tokens as
environment variables in our cloud function.
If you didn't create Object Storage you can create it now. To configure your script you need to fill these lines
users = [] # Pass telegram ids to which you would like to send messages from voice assistant
bucket_name = 'bucket_name' # Change for your bucket name
Script uses Object Storage only to check if we received a new message which needs to be spoken by voice assistant or this message was already spoken by voice assistant.
To get your telegram ID you can use for example @username_to_id_bot.
Also you can pass more telegram IDs, which are supposed to send and receive messages from voice assistants.
Like in the previous article you need to create a telegram bot with @BotFather.
Assign to variable bucket_name name
of your Object Storage bucket.
The next very important step is to create a skill for voice assistants. You can do it on this page, just press the "Create dialog" button and then "Alice skill". Fill required fields. Their purpose is clear from their description. Select your cloud function
Choose Access type
as private
. If you need, you can also share your skill with other users on tab "Access".
And that should be the final step of development.
The workflow look like this:
The following solution might be a little awkward. But it fulfills all necessary requirements. It allows blind people to send messages to telegram almost with no effort at least for an emergency contact. Unfortunately, at the moment there is no way to send notifications directly to a voice assistant to avoid additional requests to check for new messages. Also, the list of contacts is restricted by the users of the bot.
Copyright © SomeTech™ 2023