NAudio流式语音聊天c#

Posted

技术标签:

【中文标题】NAudio流式语音聊天c#【英文标题】:NAudio streaming voice chat c# 【发布时间】:2012-08-17 04:05:05 【问题描述】:

我是语音流的初学者 我尝试构建一个语音聊天应用程序我得出结论:

我应该在套接字中使用 UPD 作为 ProtocolType 我应该使用 NAudio 流媒体

发送机制(伪代码):

    private void but_Click(object sender, EventArgs e)
    
        if (sourceList.SelectedItems.Count == 0) return;
        int deviceNumber = sourceList.SelectedItems[0].Index;

        NAudio.Wave.WaveIn sourceStream = new NAudio.Wave.WaveIn();
        sourceStream.DeviceNumber = deviceNumber;
        sourceStream.WaveFormat = new NAudio.Wave.WaveFormat(44100, NAudio.Wave.WaveIn.GetCapabilities(deviceNumber).Channels);

        sourceStream.DataAvailable += new EventHandler<NAudio.Wave.WaveInEventArgs>(sourceStream_DataAvailable);
        sourceStream.StartRecording();
    

    private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e)
    
        if (sourceStream== null) return;

        send_UPD(e.Buffer, e.BytesRecorded);//sending data UPD
    

我认为发送将成功,接收者将恢复字节数组

发送机制(伪代码):

        NAudio.Wave.DirectSoundOut waveOut = new NAudio.Wave.DirectSoundOut();
        NAudio.Wave.WaveInProvider waveIn = new NAudio.Wave.WaveInProvider(/*my recived array of byte*/);
        waveOut.Init(waveIn);
        waveOut.Play();

我的问题以上是否属实,我可以用接收器中的字节数组做什么(我该如何播放)???

【问题讨论】:

【参考方案1】:

接收者应使用BufferedWaveProvider,它允许您在音频数据到达时排队播放。

【讨论】:

以上是关于NAudio流式语音聊天c#的主要内容,如果未能解决你的问题,请参考以下文章

带语音的 Lex 聊天机器人 C# 客户端

naudio 音频流到 html / 网页

NAudio能用在安卓吗

飞桨PaddleSpeech语音技术课程— 语音识别-流式服务

NAudio 的问题

扩展 gRPC 双向流式聊天服务