C# NAudio 变声

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NAudio.Wave;
using NAudio.Wave.SampleProviders;
 
namespace TestNAudio
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
 
            Task.Run(()=>{
 
            var inPath = @"C:\Users\gwang\Documents\Visual Studio 2012\Projects\TestNAudio\TestNAudio\bin\Debug\AzureWebJobs103.mp3";
            var semitone = Math.Pow(2, 1.0 / 12);
            var upOneTone = semitone * semitone;
            var downOneTone = 1.0 / upOneTone;
            using (var reader = new MediaFoundationReader(inPath))
            {
                var pitch = new SmbPitchShiftingSampleProvider(reader.ToSampleProvider());
                using (var device = new WaveOutEvent())
                {
                    pitch.PitchFactor = (float)upOneTone* 2.0f; // or downOneTone
                    // just playing the first 10 seconds of the file
                    device.Init(pitch.Take(TimeSpan.FromSeconds(10)));
                    device.Play();
                    while (device.PlaybackState == PlaybackState.Playing)
                    {
                        Thread.Sleep(500);
                    }
 
                    MessageBox.Show("play complete ");
 
                }
            }
 
            });
 
 
 
        }
    }
}

注意:需引用 NAudio.dll

资源: 

NAudio :https://github.com/NAudio

NAudio.WaveFormRenderer: https://github.com/naudio/NAudio.WaveFormRenderer

 

原文地址:https://www.cnblogs.com/wgscd/p/11765242.html

posted @ 2022-01-06 09:29  一万年以前  阅读(504)  评论(0编辑  收藏  举报