Many people are going to pronounce "buy", "by", and "bye" exactly the same way. The only way to tell the difference would be from how the word is used in a sentence.
Re:The Unsuitability of English (2015)
by igravious on Sunday February 21, 2016 @06:23PM
(#11147218)
Wiktionary lists bi, buy, and by as homophones to bye
https://en.wiktionary.org/wiki/bye
IPA: /baɪ/
The difference between 'ship' and 'sheep' and 'sheet' and 'shit' is the difference between a tense and a lax vowel. Italian doesn't make use of this distinction, so it's hard for Italians to hear the difference, but it's a perfectly ordinary distinction in vowel quality used in many languages.
There is no difference at all in the pronunciation of 'buy' and 'by'.
Ship, sheep buy, by sheet, shit
see also http://www.ecenglish.com/learnenglish/lessons/homophones-sam...
Also english doesn't (compared to italian) is filled with exceptions.