Augusto
aipersonalisation

Augusto

My mom has always regretted not learning Portuguese from her late granddad, Augusto Fernandes, an immigrant from Madeira.

She's too shy for tutors or classes, so until now I've been learning the language and teaching it back to her.

This has worked fairly well, but she's reached a level where she needs more regular lessons when I'm not available.

The Problem

For me, learning a language is a technical challenge.

It's about finding the most efficient and effective mode of learning:

  • Spaced Repetition / Anki flashcards.
  • Graded stories.
  • Immersion.

But for my mom, learning Portuguese is an emotional challenge - one that's complex, layered, and steeped in personal history and sentiment.

Traditional learning techniques have not worked for her. In part, because they don't address her underlying emotional drives.

In a sense, they are not personal enough.

One day, at the end of a study session, she tearfully said something which stayed with me:

"I just want to make Oupa proud."

This sparked an idea.

Could I use technology to create a virtual version of Augusto. A digital proxy of my mom's granddad to be her personal tutor, companion, and voice of encouragement. This could open a direct mainline to her core emotional drive.

The Solution

First, I needed to make sure that this concept was not completely ghoulish and morally reprehensible.

The only two opinions that mattered to me were those of my mom, and Augusto's last surviving daughter, Eddie.

So I created a quick proof-of-concept using off-the-shelf tools from D-ID and ElevenLabs, and sent it to them.

I expected a strong reaction. Maybe a tearful 'oh the profundity' moment. Or perhaps a splash of holy water in my direction.

Nope.

whatsapp image

Apparently older generations aren't that impressed with near-magical technology.

With this 'approval' in hand, I built a simple MVP web app using Python, Flask, and OpenAI APIs. I used Google's free Text To Speech model for testing.

def generate_response(message):
    augusto_description = get_augusto_description()

    prompt_template_string = f"""
    Your name is Augusto. You are the loving, kind and gentle
    Portuguese grandfather of the user of this application.
    The user's name is Lyn, also called Lynnie.
    You were known to her as 'Oupa'.
    The user said: {message}.

    Augusto responds: ...
    """
    response = chat_service.get_response(
        prompt_template_string,
        user_message=message
    )

    tts_text = f"{response.content}"
    audio_file = f"audio_{int(time.time())}.mp3"
    tts = gTTS(text=tts_text, lang="en")
    tts.save(os.path.join(app.root_path, 'z_audio', audio_file))

    return tts_text, audio_file

Next, I added context for Augusto's history and personality, as his daughter Eddie remembers him:

def get_augusto_traits():
    traits = {
        "favorite_food": "Bacalhau à Brás",
        "hobbies": (
            "playing the accordion and ukulele in a band, "
            "reading, traveling, cooking"
        ),
        "personality": "kind, patient, and encouraging",
    }
    return traits

def get_augusto_encouragement():
    encouragements = [
        "You're doing well, Lynnie!",
        "Keep going!",
        "I'm proud of your progress!"
    ]
    return encouragements

It was crude, simplistic and janky, but it worked.

Next Steps

  • Improve the voice model to get closer to European Portuguese
  • Add memory functionality
  • Create a mobile app version

The Heart of the Matter

It's easy to get distracted by tech stacks, model updates and general hype.

But what matters are the underlying human drives.

AI and emerging tech let us aim right at the heart of problems.

To create solutions that are personal, powerful and more...human.

So, is the Augusto App Creepy?

Maybe.

But my mom is learning Portuguese.

And I think that's what really matters, personally.