Аудио чатбот: не воспроизводится звук во время воспроизведения звука в браузере пользователя после развертывания во время работы на моем ПК - PullRequest
0 голосов
/ 27 апреля 2019

Я создал аудио чат-бота, в котором мой бэкэнд находится на python, а пользовательский интерфейс - в HTML, JS и React (окно чат-бота), где говорится об ответе бота. Я преобразовал текстовый ответ бота в файл audio.wav в сценарии python и играть в нее. он отлично работает здесь, но когда я развернул его на сервере, скрипт работает нормально, но я ничего не слышу в клиентском браузере.

причина этого может заключаться в том, что мой файл python для бота при развертывании с использованием моего ресурса сервера (звуковой карты), следовательно, может прослушивать только на стороне сервера ... для прослушивания звука на стороне клиента Я должен добавить этот аудиофайл в браузере клиента, чтобы каждый раз, когда бот отвечал, браузер воспроизводил ответ.

Что я пробовал:

Я знаю, как запустить аудиофайл в HTML, используя аудиотег или какой-либо синтезатор, но здесь проблема в том, что сначала у меня нет события в html, которое запускается каждый раз, когда replie приходит, реагирует на создание сокета, который обрабатывает ответ, следовательно я не могу использовать onEvent.playAudio (какой-то метод, подобный этому).

я могу думать о том, чтобы непрерывно передавать мой текстовый ответ из файла python в html-файл всякий раз, когда генерируется новый ответ, и воспроизводить его на html-стороне всякий раз, когда приходит новое текстовое сообщение, но не знаю, как это сделать.

Код Python:

класс BotServerOutputChannel (OutputChannel):

def __init__(self, message_store):
    self.message_store = message_store

def send_text_message(self, recipient_id, message):
    for message_part in message.split("\n\n"):
        self.message_store.log(
            recipient_id, "bot", {"type": "text", "text": message_part}
        )
    tts = gTTS(text=message, lang='hi')
    tts.save("audio.mp3")
    song = AudioSegment.from_mp3("audio.mp3")
    song.export("final.wav", format="wav")
    os.system('play final.wav')

Html сторона:

                      <script src="https://npm-scalableminds.s3.eu-central-1.amazonaws.com/@scalableminds/chatroom@master/dist/Chatroom.js"/></script>
                      <script type="text/javascript">
                        console.log('in script')
                        var chatroom = window.Chatroom({
                          host: "http://localhost:xxxx",
                          title: "audio Bot",
                          container: document.querySelector(".chat-container"),
                          welcomeMessage: "Hi User.",
                          speechRecognition: "en-US"

                        });

                        chatroom.openChat();                            
                      </script>
...