Pergunta

Eu tenho um programa que os dados de downloads PCM de um Web Server, que usa mais tarde para o jogo através de um leitor PCM padrão. Eu quero ser capaz de permitir aos utilizadores alterar o tom dos dados PCM, enquanto o seu está sendo jogado.

Alguém sabe como fazer isso?

Foi útil?

Solução

Eu não sei qualquer biblioteca de processamento de sinal digital para C #, mas esta parece ser uma amostra de fonte completo para pitch shifting em .net .:
http://sites.google.com/site/mikescoderama/pitch-shifting

Outras dicas

A solução mais simples é para reproduzir o som a uma taxa de amostragem maior do que foi gravado - tocando um arquivo de 22 kHz a 44 kHz será o dobro do campo. Você pode conseguir o mesmo por apenas jogando fora algumas amostras do som (de má qualidade) ou reamostragem o som (boa qualidade se um bom algoritmo como interpolação sinc é usado).

Mas há uma dependência - alterar o tom de reprodução em diferentes taxas de amostragem não só irá alterar o tom, mas a duração do som, também. É possível alterar a duração e arremesso de forma independente, mas isso não é assim tão fácil e envolve uma quantidade razoável de processamento singnal para alcançar boa qualidade. Geralmente é feito no domínio da freqüência usando Fast Fourier Transformations.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top