Saya ingin mengubah nada suara tanpa mengubah kecepatan audio, lalu menyimpannya ke file wav atau mp3, idenya adalah membuat beberapa efek suara menggunakan java di android, saya tidak menemukan cara yang jelas untuk melakukannya, apakah ada tutorial untuk dibaca?
Mengubah nada audio menggunakan Java (Android)
Jawaban (2)
Di bawah ini adalah tautan ke fungsi tutorial sederhana dan berharga dalam C oleh Stephan M. Bernsee, yang disebut smbPitchShift.cpp, yang dapat menaikkan atau menurunkan nada sinyal musik.
Saya juga dapat menggunakannya untuk memperlambat atau mempercepat musik tanpa mengubah nadanya. Jika Anda ingin melakukan rentang waktu tanpa mengubah nada aslinya, Anda mungkin harus menerapkan pengambilan sampel ulang.
Sepertinya Bernsee telah membuat beberapa perubahan pada kodenya sejak versi ditautkan di GitHub. Kode terbarunya tersedia untuk diunduh dari situs webnya -- ini dapat meningkatkan jangkauan peralihan dari spesifikasi aslinya. Saya mengubah kode aslinya sehingga saya bisa menaikkan pitch sebanyak 8x.
https://github.com/AndyA/BatPhone/blob/master/pitchshift.c
http://blogs.zynaptiq.com/bernsee/time-pitch-overview/ sebuah>
Setelah sedikit meneliti, saya menemukan bahwa apa yang Anda coba lakukan disebut "pergeseran nada". Ini melibatkan banyak perhitungan dan menyia-nyiakan paket suara tampaknya karena mengubah nada suara, secara otomatis mengubah kecepatan pemutarannya. Mengembalikannya ke kecepatan yang Anda inginkan sambil tetap menjaga audio pada sesuatu yang dianggap "normal" bukanlah hal yang mudah.
Bagaimanapun, karena Unity3D menggunakan C#, Anda mungkin (dan saya menekankan kata mungkin) dapat menggunakan perpustakaan sumber terbuka ini untuk mendapatkan efek suara yang Anda perlukan. Ini didasarkan pada NAudio (juga open source, dan C#) sehingga secara teoritis Anda dapat menggunakannya, atau sebagian darinya dalam proyek Anda.