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 @   一万年以前  阅读(515)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示