UDP has an 8 octet header, and TCP usually has a 20 octet header. Both require an IP header and an RTP header, which together add 32 octets.
The percentage difference between UDP and TCP depends on the size of the payload. A 20 octet payload is typical (G.729 with a sample sent every 20ms).
But, that’s not the whole story. TCP takes longer to process at the end points because they check whether data is received in the correct order and whether retransmissions are required. This is an unnecessary overhead, because if TCP detects a transmission problem, there is no point in retransmitting. Voice is real time, so if samples do not arrive, they are considered lost and the codec software just “gets on with life” 🙂