Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Eseguire codice nella shell per generare audio

    Spiego brevemente il problema: dovrei eseguire da php un programma in shell in grado di produrre una sintesi vocale di una frase. L'output dovrebbe avvenire sul computer in cui è installato Apache (attualmente localhost, ma poi sarà il server centrale di un sistema di domotica). Ho creato questo script di prova:

    Codice PHP:
    <?php
    $testo 
    "Prova di parlato italiano";
    $comando "echo \"";   //Compone il comando per la shell ( echo "Testo" | festival -tts )
    $comando.=$testo;
    $comando.="\" | festival --tts";
    shell_exec($comando);   //Manda alla shell
    ?>
    Tale script se eseguito da terminale con
    codice:
    danielepubblico@CuteDevil:/var/www/InDomo$ php tts.php
    funziona perfettamente, ma se lanciato da browser non si sente niente. Sostituire il comando con, ad esempio, "ls" visualizza correttamente nel browser il contenuto della cartella...
    Perché non funziona???
    Non ho neanche idea di come fare debug per capire qual'è il problema...
    Occhio per occhio... sessantaquacchio.

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    L'utente sotto cui gira apache ha i permessi per accedere al dispositivo audio output (/dev/audio o quello che e')?

  3. #3
    Bella domanda... probabilmente no, e stupido io che non ci ho pensato...
    Allora:

    codice:
    danielepubblico@CuteDevil:/var/www/InDomo$ ps -aux | grep apache
    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
    root      1572  0.0  0.2  36304  7548 ?        Ss   15:56   0:00 /usr/sbin/apache2 -k start
    www-data  1589  0.0  0.2  36740  6948 ?        S    15:56   0:00 /usr/sbin/apache2 -k start
    www-data  1590  0.0  0.2  36740  7004 ?        S    15:56   0:00 /usr/sbin/apache2 -k start
    www-data  1591  0.0  0.3  38040  9444 ?        S    15:56   0:00 /usr/sbin/apache2 -k start
    www-data  1592  0.0  0.2  37008  7912 ?        S    15:56   0:00 /usr/sbin/apache2 -k start
    www-data  1593  0.0  0.2  36748  6988 ?        S    15:56   0:00 /usr/sbin/apache2 -k start
    www-data  3795  0.0  0.2  36888  6956 ?        S    15:58   0:00 /usr/sbin/apache2 -k start
    www-data  3798  0.0  0.2  37112  7944 ?        S    15:58   0:00 /usr/sbin/apache2 -k start
    www-data  3799  0.0  0.2  37580  8028 ?        S    15:58   0:00 /usr/sbin/apache2 -k start
    1001      5097  0.0  0.0   3344   916 pts/0    S+   18:36   0:00 grep --color=auto apache
    danielepubblico@CuteDevil:/var/www/InDomo$
    L'utente quindi dovrebbe essere root oppure www-data... Per non sbagliare ho aggiunto il gruppo "audio" ad entrambi con usermod -G e poi ho controllato con groups, tutto andato a buon fine, apache riavviato ma ancora tutto muto... Provato anche a dare permessi 777 a /dev/audio, ma ancora nulla
    Altre idee?
    Intanto grazie per l'aiuto =D
    Occhio per occhio... sessantaquacchio.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Magari non e' /dev/audio il dispositivo.. magari e' /dev/sound, /dev/snd, /dev/nomedriverscheda. O forse c'e' qualche altro gruppo importante (alsa, etc)

    Comunque, e' sicuramente un problema di permessi o di festival, non di php, dal momento che con php-cli ti funziona. Forse festival si aspetta solo output da tty vero, o boh.

    Io farei questo debug: assegnerei una shell vera all'utente www-data (di solito e' /bin/false, /sbin/nologin o roba simile). Poi farei un "su www-data", e proverei ad eseguire tutto dalla riga di commando. In questo modo capisci se e' un problema di permessi o no, perche' praticamente esegui tutto con i privileggi dell'utente di apache. E leggi anche il manuale di festival, magari ha delle opzioni per essere verboso, o qualche modalita' di debug, cosi capisci cos'e' che non gli piace.

    ps: ovviamente poi bisogna rimettere la shell falsa all'apache, per questioni di sicurezza

  5. #5
    Nono il dispositivo è quello... già verificato. Anche il gruppo è quello, ho controllato nel mio utente, che può sentire tranquillamente audio.
    Ora mi studio un po' la situazione, intanto grazie per lo spunto, almeno so da dove cominciare
    Occhio per occhio... sessantaquacchio.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.