def conform_speaker(speaker, main_character):
    """
    Normalize speaker names using the predefined map.
    """

    CHARACTERS_MAP = {
        'a'  : 'amicus',
        'm'  : main_character,
        'unk': '?????',
        'com': 'computer',
        'c'  : 'cassius',
        'ca' : 'cato',
        'al' : 'alexios',
        'v'  : 'virginia',
        'n'  : 'neferu',
        'mon': 'monitor',
        'sc' : 'scipio',
        'me' : 'meera',
    }

    # Join the speaker aliases to their proper name.
    if speaker is None:
        return None

    return CHARACTERS_MAP.get(speaker, speaker).lower()