播放声音能支持流媒体WAV的播放吗?

使用问题 · 13 次浏览
天命小猪 创建于 1天10小时前

使用FishSpeech生成流媒体wav文件,播放本地文件时报错。

38213.3.2播放声音电脑文件或网络文件 
[in]失败后停止【值/表达式】True
[in]类型【值/表达式】EXTERN
[in]等待播放完成【值/表达式】True
[in]路径或URL【变量 savedPath】C:\Users\61125\AppData\Local\Temp\tmp4BD5.wav
异常:不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)
   在 NAudio.MediaFoundation.MediaFoundationInterop.MFCreateSourceReaderFromURL(String pwszURL, IMFAttributes pAttributes, IMFSourceReader& ppSourceReader)
   在 NAudio.Wave.MediaFoundationReader.CreateReader(MediaFoundationReaderSettings settings)
   在 NAudio.Wave.MediaFoundationReader.Init(MediaFoundationReaderSettings initialSettings)
   在 NAudio.Wave.MediaFoundationReader..ctor(String file)
   在 Quicker.Domain.Actions.X.BuiltinRunners.PlaySoundStep.ip8CY5xrLYe(String  , ActionExecuteContext  )
   在 Quicker.Domain.Actions.X.BuiltinRunners.PlaySoundStep.<>c__DisplayClass45_0.olhnX2XT0gu()
   在 Quicker.Domain.Actions.X.XActionHelper.ExecuteCommonAction(ActionExecuteContext context, ActionStep step, XAction action, Func`1 actionFunc, Action successAction, Action failAction, StepInParamDef stopIfErrorParam, StepOutParamDef isSuccessOutputParam)
步骤(sys:playSound)执行失败,原因:不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)
停止动作:不支持给定的 URL 的字节流类型。 (异常来自 HRESULT:0xC00D36C4)

有没有能够播放流媒体wav的方案?


回复内容
CL 1天5小时前
#1

这个不是标准wav文件么? 流媒体wav和普通wav是什么区别?

天命小猪 回复 CL 17小时2分钟前 :

来自AI的回答:

流媒体WAV文件与普通WAV文件的核心区别体现在文件封装方式和传输优化层面,两者的音频数据本质相同,均为无损音质。具体差异如下:

一、技术特性对比

  1. 封装结构优化
    流媒体WAV通常采用分块编码或特殊元数据设计,支持边传输边解码播放‌12;普通WAV以完整RIFF结构存储,需完全下载后播放‌6

  2. 文件兼容性
    普通WAV广泛支持所有音频设备和编辑软件‌16,而流媒体WAV可能依赖特定协议(如HTTP Live Streaming)或播放器实现实时解析‌2

二、应用场景差异

  1. 传输效率
    流媒体WAV通过分片传输减少缓冲延迟,适合网络直播、在线高品质音乐平台‌2;普通WAV更适合本地存储和后期编辑‌15

  2. 元数据扩展
    流媒体WAV可能嵌入版权信息、时间戳等流式传输所需的数据字段‌1,普通WAV的元数据通常仅包含基础音频参数‌6

三、音质与文件体积

  • 两者均采用PCM编码,音质完全一致‌15
  • 文件体积无本质差异,均显著大于MP3/AAC等压缩格式‌23

总结而言,二者区别主要在于封装协议和传输适配性,无损音频特性保持不变。选择时需根据网络环境与播放场景决定‌12

天命小猪 回复 CL 16小时58分钟前 :

主要是支持一边传输一边播放。适合FishSpeech这种推理合成新语音的过程,FishSpeech会把文本分段合成,合成时间约20~150tokens/s。使用Http的文件,下载的wav只有一小段。需要能够支持一边传输一边播放,通过先下载再播放是无法实现的。

回复主贴