2016-12-26 7 views
0

Я хотел реализовать автоматическую телефонную машину с использованием Raspberry Pi 3, которая произносит то, что я отправляю ей через веб-форму.Как вызывать имена автоматически?

Я превратил свою малину в веб-сервер, используя Apache2, и имел следующий код в своем /var/www/html. Я использую google_speech 1.0.15 TTS.

PHP

<?php 
if($_POST){ 
     $name=$_POST['name'] 
     shell_exec("/var/www/html/call.sh $name") 
} 
<html> 
<body> 
     <form action="" method="post"> 
     Name<input type="text" value="name"> 
     <input type="submit" name="submit"> 
     </form> 
<\body> 
<\html> 

call.sh

#!/bin/bash 
google_speech -l en "Hello $1" 
echo "call.sh executed" 

Я свою аудиосистему подключен к Pi. Сценарий запускается, поскольку последний вывод эха печатается, но выход речи не выходит из Pi. Я считаю, что строка google_speech -l en "Hello $1" не выполняется. Скрипт отлично работает при выполнении над терминалом. Что мне делать? Есть ли лучший способ реализовать то же самое?

+0

Лучше, если вы выполните 'if ($ _ POST ['name'])' –

+0

Это работает для вас? – yivi

+0

@yivi 'if ($ _ POST ['name'])' не делает 'google_speech -l en 'Hello $ 1" 'либо – Bosco

ответ

1

Тег не имеет "имя" определено, так что это не отправлено:

Это:

Name<input type="text" value="name"> 

и должно быть:

Name <input type="text" name="name"> 

Ваш код имеет некоторые вопиющие проблемы безопасности, но это выходит за рамки вашего вопроса. Я предполагаю, что вы будете единственным пользователем этого приложения, размещенного на вашем Pi.

+0

его плохой, что я написал его как значение, но исходная программа имеет его как само имя , имя хорошо воспринято скриптом, и я попробовал также печать, он отлично работает, но все же строка 'google_speech -l en 'Hello $ 1" 'не выполняется. Также расскажите о проблемах безопасности, которые вы видите в коде. – Bosco

 Смежные вопросы

  • Нет связанных вопросов^_^