Pergunta

Eu tenho aplicação iPhone infantil que estou escrevendo e eu preciso ser capaz de deslocar a afinação de uma amostra de som usando Core Audio. Alguém tem qualquer código exemplo que eu poderia olhar para onde isso é feito. Existem muitos aplicativos de música e jogos na loja de aplicativos que fazem isso, então eu sei que não sou o primeiro. No entanto, não consigo encontrar qualquer exemplos de ele ser feito.

Foi útil?

Solução

Você pode usar dirac-2 de DSP dimensão para pitch shifting no iphone . Citação: -

"DIRAC2 está disponível como uma biblioteca objeto comercial oferecendo taxas de amostragem ilimitadas e fase bloqueada suporte multicanal e como um único canal livre, 44,1 / versão 48kHz LE."

Outras dicas

usar o projeto de código aberto SoundTouch a mudança de tom

Aqui está o link: http://www.surina.net/soundtouch/

Depois de adicionar SoundTouch ao seu projeto, você tem que dar o caminho do arquivo de som de entrada, o caminho do arquivo de som de saída e mudança de tom como a entrada.

Uma vez que leva mais tempo para processar seu som o seu melhor para modificar SoundTouch modo que quando você gravar a voz, dar directamente os dados para processamento. Isso fará com que sua aplicação melhor.

Eu sei que é tarde demais para a pessoa que fez, mas é realmente um link valioso (Como eu encontrei) para qualquer outra pessoa que está olhando para a solução do mesmo problema.

Portanto, temos aqui mais recente DIRAC3 com o seu próprio classes que vai cuidar de campo tempo de execução e velocidade (exploração de deus sabe o que mais) deslocando . Execute o exemplo e têm enorme salva de palmas para isso.

Tente Dirac - é a melhor tecnologia lá fora e está disponível no Win, Linux, MacOS X e iOS. Nós estamos usando-o em todos os nossos produtos (e um par de outros não tão bem, procure por "Capo" na App Store). Eles são a versão 3 agora que tem visto um grande aumento no desempenho desde as versões anteriores. Espero que isso ajude.

Veja: questão relacionada

Quanto controle sobre a afinação que você precisa ... você poderia precalculate todos os diferentes sons? Se a resposta for sim, então você pode simplesmente pegar os sons certos e reproduzi-los.

Você também pode usar Audio Converter Serviços em conjunto com AVAudioPlayer, o que permitirá que você resample o áudio (que efetivamente repitch eles, embora eles vão mudar de duração).

Como alternativa, como a questão relacionada aponta, você poderia usar OpenAL e AL_PITCH

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