2017-03-16 9 views
2
library(shiny) 
library(cognizer) 


#' the required api keys 
username_TTS <-"" 
password_TTS <- "" 
TEXT_TO_SPEECH_USERNAME_PASSWORD = paste(username_TTS,":",password_TTS,sep="") 

ui <- fluidPage(

    # Application title 
    titlePanel("Just some text to speech example"), 

    fluidRow(textInput("caption","Enter the caption"),actionButton("gobutton","submit")), 
    fluidRow(verbatimTextOutput("answer"), width = 4), 

    # plays from www/ 
    fluidRow(tags$audio(src = "1.wav", type = "audio/wav", controls = NA), helpText("Key in any sentences, wait and press F5. Then you can play your audio")) 


) 



server <- function(input, output) { 

textfunction <- eventReactive(input$gobutton, { 
    thetext <- input$caption 
    text_audio(thetext, TEXT_TO_SPEECH_USERNAME_PASSWORD, directory = 'www', accept = "audio/wav") 
    "Done!" 

     }) 


output$answer <- renderText({textfunction()}) 


} 

# Run the application 
shinyApp(ui = ui, server = server) 

テキストを音声に変換するためにWatsonを使用してアプリを作成しました。ユーザはテキスト文を入力する。送信をクリックすると、ワトソンがオーディオファイルに変換します。ただし、F5でアプリを更新しない限り、再生されるオーディオファイルは常に前のテキストになります。オーディオプレーヤーに最新のオーディオファイルを取り込ませるにはどうすればいいですか?Shiny Watsonテキストリアルタイム音声

例:テキスト1:こんにちは を提出して遊ぶ "ハロー" となります テキスト2:さようなら を提出し、プレーを、まだ "こんにちは" I F5、その後、私はプレーをクリックするまでは、その "BYE"

答えて

0

問題は、シャイニーのオーディオファイルのキャッシュに関連しています。この問題を回避するには、hereを説明するように、あなたを助けることができます。

は、それが照会された後、wavファイルの名前を変更し、UIにサーバ側のrenderUI()uiOutput()を用いた反応性UIコンポーネントにそれを渡します。

以下の実施例を参照してください。

library(shiny) 
library(cognizer) 

# the required api keys 
username_TTS <-"" 
password_TTS <- "" 
TEXT_TO_SPEECH_USERNAME_PASSWORD = paste(username_TTS,":",password_TTS,sep="") 

ui <- fluidPage(

    # Application title 
    titlePanel("Just some text to speech example"), 

    fluidRow(textInput("caption","Enter the caption"),actionButton("gobutton","submit")), 
    fluidRow(verbatimTextOutput("answer"), width = 4), 

    # plays from www/ 
    fluidRow(
    uiOutput("play") 
) 
) 

server <- function(input, output) { 
    observeEvent(input$gobutton, { 
    unlink("www/*.wav") 
    thetext <- input$caption 
    text_audio(thetext, TEXT_TO_SPEECH_USERNAME_PASSWORD, directory = 'www', accept = "audio/wav") 
    file.rename("www/1.wav", paste0("www/number",input$gobutton,".wav")) 
    "Done!" 
    output$play <- renderUI(
     tags$audio(src = paste0("temp.wav"), type = "audio/wav", controls = NA) 
    ) 
    output$play <- renderUI(
     tags$audio(src = paste0("number", input$gobutton,".wav"), type = "audio/wav", controls = NA) 
    ) 
    output$answer <- renderText(paste("Done!", input$gobutton)) 
    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 
+0

こんにちは、ロバート、私は現在のポストを読んでいます。それは同じ問題です。しかし、私はwatson関数がwavファイルを出力して以来、私のwavファイルの名前を変更に固執しています.wwファイル – Germ

+0

は多くの方法を試しました。 file.renameを実行する関数を変更します。 UIでレンダリングし、出力します。すべてのオーディオファイルが作成されますが再生されません。問題2:再生後にオーディオファイルを削除する方法テキストが送信されるたびに、オーディオファイルはディレクトリ – Germ

+0

に永久に保存されます。 'file.remove()'を使って不要なファイルを削除することができます。私はあなたがあなたのアプリを使用している複数のクライアントを持っている場合、これは特に安定版ではないことを心配しています。 – Robert

関連する問題