knitr::opts_chunk$set(echo = TRUE)
Add Speech Recognition to your Shiny app!
The heyshiny
package provides a new Shiny input, the speechInput()
. This new input allows your Shiny app to listen to the microphone, recognize the speech, and return it as text.
So, make you Shiny app voice-interactive with heyshiny
!
heyshiny
is possible thanks to the annyang javascript library.
heyshiny
is currently only available as a GitHub package.
To install it run the following from an R console:
if (!require("remotes")) { install.packages("remotes") } remotes::install_github("jcrodriguez1989/heyshiny", dependencies = TRUE)
annyang, and thus heyshiny
, depends on that the used browser supports speech recognition. The RStudio viewer pane does not support heyshiny
, so addins created with heyshiny
should be opened in a new window (which opens a supported browser).
heyshiny
works nicely with Google Chrome.
For a FAQ with respect to the Speech Recognition tool, annyang, please refer to its FAQ page, where you can find:
library("shiny") library("heyshiny") ui <- fluidPage( useHeyshiny(language = "en-US"), # configure the heyshiny package titlePanel("Hey Shiny!"), speechInput(inputId = "hey_cmd", command = "hey *msg"), # set the input verbatimTextOutput("shiny_response") ) server <- function(input, output, session) { # read the speech input observeEvent(input$hey_cmd, { speech <- input$hey_cmd message(speech) res <- "Sorry, I don't know how to help with that yet" if (grepl("^random number", tolower(speech))) { res <- paste0("Here is your random number: ", round(runif(1, 0, 8818))) } else if (grepl("^repeat", tolower(speech))) { res <- sub("repeat ", "", speech) } output$shiny_response <- renderText(res) }) } shinyApp(ui, server)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.