The use of stroke types is frequently the decisive factor in a well-matched badminton competition. It is essential to have stroke by stroke logs in practices and competitions. In this work, a smart racket system is developed to recognize and record each stroke. The racket is equipped with an acoustic sensor and an inertial measurement unit, and sensing data are transmitted to a smartphone via BT connections for further processing. The shuttlecock hitting events are detected by utilizing voiceprint, and the stroke types are classified by various machine learning algorithms including random forests, Bayesian models, and support vector machines. In our experiments, over 99.9% hitting events can be detected by the proposed voiceprint-based algorithm that outperforms most commercial solutions on the market. In addition, the average accuracy of stroke type classification is 96.5% by personalized models and 84% by generalized models.