Я создал аудио чат-бота, в котором мой бэкэнд находится на 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>