The present invention provides a voice recognition method, a client and a terminal device. The method comprises: acquiring an original voice recognition result of a voice input by a user, and parsing a voice recognition scenario of the user according to the original voice recognition result; according to the voice recognition scenario, acquiring keyword information that needs to be corrected and a polyphone in each piece of keyword information from the original voice recognition result; generating one or more junk words containing the polyphone according to the keyword information that needs to be corrected and the polyphone in each piece of keyword information; according to the voice recognition scenario, acquiring actual information, which corresponds to the voice recognition scenario, in a terminal device, and matching the junk word with the actual information, screening out a correct polyphone, and filling the keyword information that needs to be corrected with the correct polyphone, so as to obtain a correct keyword; and according to the correct keyword, generating a final voice recognition result that coincides with a current voice recognition scenario.