<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def spoken_number(num: str) -> str: """ Returns the spoken version of a number Ex: 1.2 -> one point two 1 1/2 -> one and one half """

    ret = []
    for part in num.split(' '):
        if part in FRACTIONS:
            ret.append(FRACTIONS[part])
        else:
            ret.append(' '.join([NUMBER_REPL[char] for char in part if char in NUMBER_REPL]))
    return ' and '.join(ret)