You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
import os
|
|
import random
|
|
|
|
# Create a list of character names
|
|
character_names = ["Alice", "Bob", "Charlie", "Dave", "Eve"]
|
|
|
|
# Create a dictionary of character voices
|
|
character_voices = {
|
|
"Alice": "Alice.wav",
|
|
"Bob": "Bob.wav",
|
|
"Charlie": "Charlie.wav",
|
|
"Dave": "Dave.wav",
|
|
"Eve": "Eve.wav",
|
|
}
|
|
|
|
# Get the user's input
|
|
conversation_topic = input(
|
|
"What would you like the characters to talk about? "
|
|
)
|
|
|
|
|
|
# Create a function to generate a random conversation
|
|
def generate_conversation(characters, topic):
|
|
# Choose two random characters to talk
|
|
character1 = random.choice(characters)
|
|
character2 = random.choice(characters)
|
|
|
|
# Generate the conversation
|
|
conversation = [
|
|
(
|
|
f"{character1}: Hello, {character2}. I'd like to talk"
|
|
f" about {topic}."
|
|
),
|
|
(
|
|
f"{character2}: Sure, {character1}. What do you want to"
|
|
" know?"
|
|
),
|
|
(
|
|
f"{character1}: I'm just curious about your thoughts on"
|
|
" the matter."
|
|
),
|
|
f"{character2}: Well, I think it's a very interesting topic.",
|
|
f"{character1}: I agree. I'm glad we're talking about this.",
|
|
]
|
|
|
|
# Return the conversation
|
|
return conversation
|
|
|
|
|
|
# Generate the conversation
|
|
conversation = generate_conversation(character_names, conversation_topic)
|
|
|
|
# Play the conversation
|
|
for line in conversation:
|
|
print(line)
|
|
os.system(f"afplay {character_voices[line.split(':')[0]]}")
|