The web extensions that are currently shown on this page can be used to start custom actions in the user’s browsers.
As currently only single words can be used for dictation can be used, there is a need for improvement- to be able to set simple sentences or groups of sentences as task to be completed before continuing browsing.
To create this the following approach will be used (see following diagram)
As there are multiple steps to be performed, this is just the overview and the contained modules will be described in separate posts.
The approach is to:
- on browser events, predefined in advance, the extension will create new tab with dynamic web page, that will be automatically closed when task is complete. If the page is closed before this, it will be recreated without saved progress.
- parse input text (can be done in advance or in real time on request)
- split it to words and sylables
- generate sound files for the words, sylables and letters (new words will be generated online and then cached. the sylables will be generated and cached probably in the testing phase)
- generate web page with the text and the JavaScript interactions
- user gets the web page and the text to type in
- when completed, the new page gets closed and the user can continue to use the browsers normally
Some browsers can be used for Text-To-Speech generation on demand, but some users prefer specific browsers, that do not support the Bulgarian language speech generation, or use multiple browsers. The goal is to have consistent behaviour between the browsers, or at least same for Edge and Chrome.
As some programming techniques are best performed in specific languages there will be different modules in several different programming languages. For example the text parsing will be performed in PowerShell, the word lookup will be performed with PHP from SQL (MySQL/MS SQL) DB, the page generation will probably be in PHP or PowerShell, the delivery to client will be via HTTP using PHP, the client side scripting will be JavaScript, the sound generation will be .NET application on Windows, the extensions are in JavaScript, the web server will be probably Apache…. so it is a quite mixed project.
The projet is not a “one week in the spare time” project, but requires more time. Some people might finish it in one weekend, but I can not.
Due to the timespan and complexity, the project requires planning, versioning and probably some iterations. As Agile with Kanban cards is one of the current trends, similar approach will be used- diagrams with modules that will be in different states, small increments and testing, but the documentation will be rather extensive. The modules will be developed and tested in the order of appearance, but some
Related articles: