Reprodução de som com PWM (como acabar com zumbido agudo?)

Boa tarde a todos.
Nos últimos dias tenho tentado reproduzir um som via PWM.
A amostra de som que estou tentando reproduzir está gravada há 8khz, 8bits, unsigned e mono.
Na primeira tentativa de reprodução desta amostra configurei o PWM para a 8khz, ou seja, a cada 125us o pino de saída do módulo PWM é configurado com um valor de 8bits desta amostra.
O timbre da voz gravada permaneceu muito próximo do original, porem com um chiado muito agudo durante toda reprodução.
Como quase tudo que pude ler até agora informa que a taxa de reprodução deve ser de no mínimo duas vezes a taxa de aquisição, configurei novamente a saída PWM, porem agora a 16khz e repetindo duas vezes o mesmo byte e rodei o programa, ficando quase a mesma coisa.
Refiz tudo a 24khz, não saiu nada, apenas uns clicks.
E finalmente a 32khz, repetindo quatro vezes o mesmo byte, rodou sem chiado nenhum. Porem o timbre ficou muito grave, como se estivesse rodando lentamente, mais com muito boa definição da palavra.
Resumindo, fiz diversas formas de configurações possíveis no programa com filtros diversos e não consegui chegar a um consenso.
Ou seja, me falta conhecimento e compreensão técnica do assunto.
Como áudio digital é um assunto muito complexo, então peço a algum participante aqui do fórum possa dar uma explanação sobre o assunto, porem de forma reduzida para que eu possa entender.
O que necessito é reproduzir os números de 0 a 9 já gravados em um cartão SD.
Como ler o cartão não é problema, isto já é feito sem problema nenhum.
Para que nada interfira na reprodução uma destas amostras está gravada na memória ROM de um pic18f2620 junto com o programa.
O que realmente preciso é saber como reproduzir as amostras já gravadas o mais fielmente possível dentro deste contexto (8khz, 8bits, unsigned e mono).
Desde já agradeço.
Nos últimos dias tenho tentado reproduzir um som via PWM.
A amostra de som que estou tentando reproduzir está gravada há 8khz, 8bits, unsigned e mono.
Na primeira tentativa de reprodução desta amostra configurei o PWM para a 8khz, ou seja, a cada 125us o pino de saída do módulo PWM é configurado com um valor de 8bits desta amostra.
O timbre da voz gravada permaneceu muito próximo do original, porem com um chiado muito agudo durante toda reprodução.
Como quase tudo que pude ler até agora informa que a taxa de reprodução deve ser de no mínimo duas vezes a taxa de aquisição, configurei novamente a saída PWM, porem agora a 16khz e repetindo duas vezes o mesmo byte e rodei o programa, ficando quase a mesma coisa.
Refiz tudo a 24khz, não saiu nada, apenas uns clicks.
E finalmente a 32khz, repetindo quatro vezes o mesmo byte, rodou sem chiado nenhum. Porem o timbre ficou muito grave, como se estivesse rodando lentamente, mais com muito boa definição da palavra.
Resumindo, fiz diversas formas de configurações possíveis no programa com filtros diversos e não consegui chegar a um consenso.
Ou seja, me falta conhecimento e compreensão técnica do assunto.
Como áudio digital é um assunto muito complexo, então peço a algum participante aqui do fórum possa dar uma explanação sobre o assunto, porem de forma reduzida para que eu possa entender.
O que necessito é reproduzir os números de 0 a 9 já gravados em um cartão SD.
Como ler o cartão não é problema, isto já é feito sem problema nenhum.
Para que nada interfira na reprodução uma destas amostras está gravada na memória ROM de um pic18f2620 junto com o programa.
O que realmente preciso é saber como reproduzir as amostras já gravadas o mais fielmente possível dentro deste contexto (8khz, 8bits, unsigned e mono).
Desde já agradeço.