In languages like Hokkien that use all of the following consonants: /p/, /b/, and /ph/, how do you tell apart /p/ and /b/? Someone once taught me a trick where you say, "spy" and "buy" over and over again, but I still can't hear a difference. I read somewhere that the most reliable way to hear a difference is to listen to whether the vocal cords are used before the lips are opened.
There is no general solution, other than practice, practice, practice. The most important thing to understand is that purported /p,b,pʰ/ are not the same in all languages, so you have to learn them in a specific language. No magic trick will give you the ability to hear a phonetic difference. Learning the distinction in Taiwanese might make it easier to perceive in Shanghainese (but I think maybe it is easier if you start with Shanghainese )
The best way to practice, practice, practice is to have a good collection of recorded examples in the language. Linguists tend to love minimal pairs, which are words where everything is the same except for one phonetic property, but they are generally very hard to come by especially in large enough numbers that you can reliably hear the difference. They are, though, a starting point. The standard linguist's research method is to find a speaker of the language and over the course of months, elicit numerous words, many times, and apply your skills in transcribing to the recorded data. If you gather a list of 5,000 words, you will probably have enough examples that you will have an adequate set of words that you can hear the difference. The problem, especially for Hokkien, is that you may hear that some two or three words are very similar sounding, but you won't know exactly why they are different -- is it the consonant, or is it the tone?
As a practical aid, we usually look for the findings of others who have done work on the language, e.g. search for a grammar book.
This depends somewhat on the perception of your native language.
The amount of voicing—technically, the voice onset time (VOT)—in standard English bin (in AmE and BrE at least) is not nearly as much as it is Hokkien 馬 bé. In Klatt (1975)'s study, the mean VOT for unaspirated /p/ as in spin is +12ms, which is similar to (and even more positive than) so-called voiced /b/ in bin at +11ms. These positive VOT values mean that these instances of English /b/ are actually on average not voiced.
Hokkien is different, with its three way contrast (using Peh-oe-ji romanisation) of:
- ph, p, b
- kh, k, g
- chh, ch, j
VOT values for heavily voiced /b/ are all negative, between -100ms and -40ms for Pan (1994)'s study on Taiwanese Hokkien speakers.
What should also be mentioned is that Min Nan voiced consonants come historically from initial nasal consonants in Middle Chinese, and often retain that nasality (or in the case of j, the l realisation), dependent on the phonological environment and dialect. Hence [mb] is very common as a realisation of the phoneme. This can help with listening (which is something you may not get in other languages with three-way contrasts, like Armenian or Thai).
Learning to distinguish minimal pairs are great for training one's listening ability:
The crucial difference occurs during a brief moment of time between the consonant and the following vowel, and sometimes the surrounding sounds before and after that consonant draw your attention away.
If you have clear recordings of two words, identical except that one has /p/ and the other /b/, find some program that will let you look at the waveform and play a selected area (Audacity is popular and free, but there are many others). Try to play the bit just before the vowel (or just the end of the word if the consonant is final). That will help you train your ear on the crucial bit.