JavaScript — выполнение скрипта Python, который использует PyAudio на веб-странице

У меня есть сценарий python, который использует pyaudio для записи звука с помощью микрофона, а код преобразует речь в текст. Он отлично работает на терминале. Вот раздел кода Python:

stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
output=True,
frames_per_buffer=CHUNK)


async def send_audio(ws):
# Starts recording of microphone
print("* READY *")
start = time.time()
while True:
try:
#print(".")
data = stream.read(CHUNK)
await ws.send(data)
##if time.time() - start > 30:    # Records for n seconds
##await ws.send(json.dumps({'action': 'stop'}))
##return False
except Exception as e:
print(e)
return False
except KeyboardInterrupt:  # allow Ctrl + C to shut down the program
await ws.send(json.dumps({'action': 'stop'}))
return False

# Stop the stream and terminate the recording
stream.stop_stream()
stream.close()
p.terminate()


async def speech_to_text():
async with websockets.connect(url, extra_headers=token_header) as conn:
# Send request to watson and waits for the listening response
send = await conn.send(json.dumps(params))
rec = await conn.recv()
print(rec)
asyncio.ensure_future(send_audio(conn))
w=0
global lst
# Keeps receiving transcript until we have the final transcript
while True:
try:
rec = await conn.recv()
parsed = json.loads(rec)
transcript = parsed["results"][0]["alternatives"][0]["transcript"]

#print(parsed)
if "results" in parsed:
if len(parsed["results"]) > 0:
if "final" in parsed["results"][0]:
if parsed["results"][0]["final"]:
#conn.close()
#return False
print(transcript)
lst.append(transcript)
lst.append("\n")
pass
except KeyError:
conn.close()
return False

# Starts the application loop
loop = asyncio.get_event_loop()
loop.run_until_complete(speech_to_text())
loop.close()

Теперь я хочу вызвать этот скрипт на веб-странице, нажав кнопку. Я попытался использовать exec () и shell_exec () в php как:

<div>
<?php
echo "<h3>POST:</h3>";
print_r($_POST);
if(isset($_POST["submit"])){
print_r (shell_exec("cd / && python C:/xampp/htdocs/heyy/postibm.py"));

}
?>

<form method="post"action="try.php ">
<input type="submit" name="submit"value="Submit">
</form>
</div>

Но при нажатии на кнопку страница застревает на экране загрузки и не дает ответа. Если я заменил «postibm.py» на простой «helloworld.py», печатающий hello world, он работает. Есть идеи, в чем проблема? или есть ли лучший способ решить эту проблему?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …