phi2-cohost-emma / README.md
lilbablo's picture
Add YAML metadata to model card
2959aaf
metadata
license: mit
language:
  - en
tags:
  - phi2
  - conversational-ai
  - cohost
  - podcast
  - fine-tuned
  - voice-assistant
base_model: microsoft/phi-2
model_type: causal-lm
pipeline_tag: text-generation

πŸ§‘β€πŸ’» phi2-cohost-emma

Emma is a fine-tuned version of the Phi-2 language model, optimized to serve as a conversational podcast co-host for the Mind Meets Model series.

She combines wit, structure, warmth, and insight β€” engaging in voice-native dialogue with a human anchor named Babs. Trained to offer co-pilot-style reasoning, Emma provides structured, culturally aware, and curious responses that feel like a sharp second brain.


πŸ”§ Model Details

  • Base model: microsoft/phi-2
  • Fine-tuning method: QLoRA (4-bit), supervised fine-tuning
  • Training data: Custom podcast-style conversational transcripts + blended curated datasets (PersonaChat, Cornell Movie Dialogs, OpenOrca)
  • Purpose: Real-time, voice-native podcast conversation partner
  • Voice Output: Uses ElevenLabs TTS, currently paired with the Sarah voice

🧠 Use Case

Emma was designed to:

  • Ask and answer questions like a sharp co-host
  • Offer cultural references, analogies, and nuance
  • Maintain natural, topic-aware conversation across turns

πŸš€ Example Prompt & Output

Prompt:

Generated Response:

Well, Babs, I think we need to start by defining what we mean by AI in education. There are different types of AI β€” narrow, general, and super β€” each with different implications for learning environments...


πŸ”Š Voice Integration (Optional)

Emma was paired with ElevenLabs TTS (Sarah) for audio output. To hear her speak:

import requests

def speak(text):
    r = requests.post(
        "https://api.elevenlabs.io/v1/text-to-speech/EXAVITQu4vr4xnSDxMaL",  # Sarah
        headers={"xi-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
        json={"text": text, "model_id": "eleven_monolingual_v1"}
    )
    with open("emma_response.mp3", "wb") as f:
        f.write(r.content)