2016-01-10 1 views
-3

Commencé juste à apprendre la programmation et commencé à barboter avec le code de chatbot simple. J'ai des réponses dans le texte, mais je veux que mon ordinateur (Mac) parle la réponse et seulement la réponse en même temps qu'elle apparaît. Voici le code:Obtenez l'ordinateur pour parler la réponse

import random 

import sys 

import os 

def show_response(options): 

choice = random.randint(0, len(options) -1) 

print(options[choice]) 

random.seed(None) 

while True: 
    userInput = input(">>>") 

    if userInput in ["Ava, you there?"]: 
     list = ["Indeed I am, Sir.", "Yes, Sir. What do you need?", "For you, Sir, always.", "I am now.", "What is it, Sir?", "I'm right here.", "How may I assist you, Sir?", "How may I assist you?", "You need something, Sir?"] 
     choice = random.randint(0, len(list) -1) 
     print(list[choice]) 
    elif userInput in ["Wake up, Ava"]: 
     list = ["What is it, Sir?", "How can I help?", "How can I help, Sir?", "Hello, Sir.", "Hello, Sir. Is there anything you need?", "How may I assist you?", "How may I assist you, Sir?"] 
     choice = random.randint(0, len(list) -1) 
     print(list[choice]) 
    elif userInput in ["Hey, Ava"]: 
     list = ["What is it, Sir?", "How can I help?", "How can I help, Sir?", "Hello, Sir.", "Hello, Sir. Need anything?", "How may I assist you?", "How may I assist you, Sir?", "You need something, Sir?"] 
     choice = random.randint(0, len(list) -1) 
     print(list[choice]) 

S'il s'agit d'une répétition, je m'excuse. J'ai plus besoin d'adapter la solution dans cette structure, juste pour m'aider à apprendre où elle est placée et comment l'utiliser.

NOTE: Ce n'est pas une dupe de la question marquée. Bien que la question soit censée être dupée vous permette de transformer le texte en discours, il ne s'agit pas de transformer des réponses aléatoires listées en paroles, ce que je devais faire. Cela m'a cependant permis de faire fonctionner le discours, alors merci. J'ai trouvé la réponse ailleurs et l'ai placée ci-dessous.

+0

Pour mettre en forme le code, sélectionnez le bloc et appuyez sur le bouton de la barre d'outils qui ressemble à des accolades. Cela fonctionne parfaitement. Vous n'avez pas besoin de lignes vides supplémentaires entre chacune de vos lignes de code. –

+0

«J'ai plus besoin de trouver la solution dans cette structure» est une façon élégante de dire «fais-le pour moi». Il semble que vous ayez trouvé ce dont vous aviez besoin, mais que vous ne vouliez pas prendre le temps nécessaire pour l'apprendre suffisamment bien pour l'utiliser. – csmckelvey

+0

Copie possible de [Comment faire parler Python] (http://stackoverflow.com/questions/1614059/how-to-make-python-speak) – csmckelvey

Répondre

0

Comme je n'ai reçu aucune réponse ici pour aider la situation, je suis allé ailleurs et j'ai trouvé la réponse à cette question SPÉCIFIQUE. Bien que la question était censée être dupée a permis à Python de parler, il n'a pas mis le discours aux réponses avec dans la liste. Cela m'a cependant permis de faire fonctionner le discours, alors merci. J'ai simplement ajouté ce code sous TOUT 'print (list [choix])' incluant 'print (options [choix])' où il déclare les fonctions.

Le code nécessaire: os.system ("dire" + " '" + liste [choix] + "'")

Cela permettra ensuite de parler des réponses choisies au hasard. Cependant, pour une raison quelconque, il ne semble pas aimer les apostrophes alors assurez-vous que toutes les réponses dans la liste n'en ont pas! Les virgules, les points, les points d'interrogation, etc semblent être bien, mais les apostrophes sont un pas!

Cela a fonctionné pour moi, pas sûr si cela fonctionnera pour d'autres itérations de code mais j'espère que cela fonctionne.