npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@eloquentops/retool-plugin-speech2text

v0.0.16

Published

A Retool Plugin by EloquentOps

Downloads

21

Readme

Speech to Text for Retool

A Custom Component for Retool that adds Speech to Text capability.

npm version

[!NOTE]

It requires, only the first time, the permission from the browser to use the microphone.

[!WARNING]

Please refer to the official documentation of the SpeechRecognition capability about browsers compatibility and different implementations between vendors. We've only tested successfully on Google Chrome.

Installation

Drag a Custom Component into your canvas in a Retool app.

Put this code into the IFrame Code area of the Custom Component:

<script src="https://unpkg.com/@eloquentops/retool-plugin-speech2text"></script>

Allow the following checkbox in the interaction section of the Custom Component:

  • [x] Microphone
  • [x] Storage and cookies

Configuration

You can add options in the Model such this example (values are the default).

[!IMPORTANT]

An empty object {} is required! Do not leave empty.

{
    lang: 'en-US',
    continuous: false,
    interimResults: true,
    maxAlternatives: 1,
}

Please refer to this official documentation about the SpeechRecognition options.

Further options are:

{
  keepActive: true,
  labelStart: 'Start',
  labelStop: 'Stop'
}

keepActive is a custom option that force the restart of the speech in case of silence. Otherwise the SpeechRecognition will close automatically after few seconds of silence.

The component renders a single button, thus, you can configure labels of the two states.

[!IMPORTANT]

Right now, when you change an option in the Model, you need to reload the component, because SpeechRecognition cannot be reset at runtime. If you need to set an option through another component at runtime, such as select the language, you can trigger a custom component reload during on-change event of the select component.

How to get back the text

Fair question. The component exposes two additional properties in its model:

{
  lastMessage: '', // String
  messages: [] // Array of strings
}

So, you can bind them to your Retool components as you normally would do, such as:

Last message: {{customComponent2.model?.lastMessage}}

Licence

This plugin is released under the 3-Clause BSD license.

Copyright © 2023 Fabio Franchino, https://fabiofranchino.com