2016-12-26 9 views
0

Raspberry Pi 3を使用して自動呼び出し機を実装したいと思っていました。これは、Webフォーム経由で送信するものを発音します。名前を自動的に呼び出す方法は?

私は自分のラズベリーを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に接続されている私のオーディオシステムを持っています。最後のecho文が出力されますが、音声出力が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

関連する問題