J'ai un code python qui reconnaît la parole en utilisant le moteur STT de Google et me renvoie les résultats, mais je reçois les résultats dans des chaînes de caractères avec des "guillemets". Je ne veux pas de ces guillemets dans mon code car je vais l'utiliser pour exécuter de nombreuses commandes et cela ne fonctionne pas. Je n'ai rien essayé jusqu'à présent car je n'ai rien reçu à essayer ! Voici la fonction dans le code python qui va reconnaître la parole :
def recog():
p = subprocess.Popen(['./speech-recog.sh'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
global out,err
out, err = p.communicate()
print out
C'est speech-recog.sh :
#!/bin/bash
hardware="plughw:1,0"
duration="3"
lang="en"
hw_bool=0
dur_bool=0
lang_bool=0
for var in "$@"
do
if [ "$var" == "-D" ] ; then
hw_bool=1
elif [ "$var" == "-d" ] ; then
dur_bool=1
elif [ "$var" == "-l" ] ; then
lang_bool=1
elif [ $hw_bool == 1 ] ; then
hw_bool=0
hardware="$var"
elif [ $dur_bool == 1 ] ; then
dur_bool=0
duration="$var"
elif [ $lang_bool == 1 ] ; then
lang_bool=0
lang="$var"
else
echo "Invalid option, valid options are -D for hardware and -d for duration"
fi
done
arecord -D $hardware -f S16_LE -t wav -d $duration -r 16000 | flac - -f --best --sample-rate 16000 -o /dev/shm/out.flac 1>/dev/shm/voice.log 2>/dev/shm/voice.log; curl -X POST --data-binary @/dev/shm/out.flac --user-agent 'Mozilla/5.0' --header 'Content-Type: audio/x-flac; rate=16000;' "https://www.google.com/speech-api/v2/recognize?output=json&lang=$lang&key=key&client=Mozilla/5.0" | sed -e 's/[{}]/''/g' | awk -F":" '{print $4}' | awk -F"," '{print $1}' | tr -d '\n'
rm /dev/shm/out.flac
Ceci est tiré du programme Voicecommand de Steven Hickson réalisé pour Raspberry Pi.
1 votes
Voulez-vous dire des guillemets supplémentaires aux guillemets qui représentent une chaîne de caractères en Python ? Incluez la commande et la sortie que vous avez, et ce que vous voulez spécifiquement.
0 votes
Il existe de nombreux doublons pour "[python] remove string quotes".