C#中的音频描述符MFCC
我正在做原始的语音识别,需要对我的音频信号进行简单的描述. 现在,我只有我的音频信号中的FFT,但是在那之后我不知道该怎么办.当我尝试使用隐藏的马尔可夫模型时,只有我的训练信号中的FFT,它给了我错误的答案. 您能告诉我任何C#库,这可以帮助我将FFT信号更改为MFCC(MEL频率Cepstrum系数)? 解决方案 我不知道C#的此类库,但是我可以向您展示我从大量具有16 kHz样品频率的Wav-File振幅中提取20 MFCC的实现. 您必须使用MatNet.Numerics和MathNet.Filtering libraries . 只有俄罗斯评论,对不起. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Numerics; using Math
16 2024-04-26
编程技术问答社区
用NAudio按键播放MP3时内存占用率高
我正在使用c#,wpf和我在按下键时在应用程序exe中播放embedded resource mp3. 如果反复按键,RAM的使用继续爬上400MB,并且永不掉落. 在对象上使用Flush()和Dispose()即使在调用GC时似乎也没有自由记忆. 当我使用string路径而不是MemoryStream上的external资源播放时,这并不是这种情况.它曾经停留在50MB ram左右. public static MemoryStream ms = null; public static WaveStream wav = null; public static WaveOutEvent output = null; // Embedded Resource sound1.mp3 MemoryStream sound1 = new MemoryStream(Properties.Resources.sound1); // Key Press // if
18 2024-04-26
编程技术问答社区
在VideoLan DotNet for WPF中改变音频流
我们正在使用 videolan dotnet用于wpf 在我们的WPF应用程序中播放DVD电影.有些电影有多个音频流. (例如,用多种语言)我们如何选择所需的音频流? 搜索 videolan的Wiki ,我发现了这一点: [Browsable(false)] [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public int AudioTrack { get { return this.nativeVlc.GetVlcObjectInt(ObjectType.VLC_OBJECT_INPUT, "audio-es", -1); } set { this
18 2024-04-26
编程技术问答社区
检查一个应用程序是否会发出声音
今天,我在这里问您如何" 理解",如果给定的应用程序发出声音. 在Windows 7和8上,我使用以下代码(库 cscore audio ) [...] AudioSessionManager2 sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render); AudioSessionEnumerator sessionEnumerator = sessionManager.GetSessionEnumerator(); AudioSessionControl2 sessionControl; foreach (AudioSessionControl session in sessionEnumerator) { sessionControl = s
12 2024-04-26
编程技术问答社区
Silverlight 4采集源未被停止
我正在研究一个Silverlight项目,以在网页上记录音频. 我单击暂停按钮后,代码将始终抛出一个例外: 捕获源不停止 如果我在此代码上放了一个断点,然后在此处等待3-5秒,然后运行代码,则不会抛出任何例外. if (audioSink.CaptureSource.State == CaptureState.Started) (break point is on this line) 这是代码 private void Pause(object sender, RoutedEventArgs e) { //System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5)); if (audioSink.CaptureSource.State == CaptureState.Started) { audioSink.Ca
14 2024-04-26
编程技术问答社区
如何使用脚本或代码来控制媒体播放器
是否有媒体播放器,您可以在其中使用脚本或代码来控制其音频和视频.例如,我想在N SEC之后暂停视频,哪个播放器支持此?我正在寻找在桌面上运行的免费OpenSource解决方案,即Windows 7. 解决方案 我不是提供整个解决方案的那种.但这是一个很好的起点.它显示了如何以Windows表单嵌入Windows Media Player. 您可以访问诸如播放,停止等之类的控件 其他解决方案 videolan 支持使用此类用途. 例如,请参阅此处: http://wwww.videolan. org/doc/play-howto/en/ch04.html 从链接: - Extraintf允许您选择除主模块外还将启动的额外接口模块.这主要用于特殊控制接口,例如HTTP,RC(遥控器),...(见下文) rc接口可能是纯净的代码/脚本 - 视图. 使用网页将HTTP接口针对人类,但也可以从代码控制.
18 2024-04-26
编程技术问答社区
通过这段代码改变音频采样率,目前改变了比特深度?
好的,不能提出一个好话题. 重点是,我有一个代码,我在将位深度从32位更改为16位时得到了帮助,不确定它是如何工作的,但是我认为它只是删除了其他所有内容,没有什么幻想. 因此,如果可以使用代码执行此操作,则应该可以更改采样. 另外,我不想在这里花哨的东西,因为它更适合调试用途,我只想将其进行其他采样,而不是"重新采样". 表示例如,如果音频为48kHz,并且我在播放到47kHz时将其重新取样,那么它听起来不会像仍然认为它的48kHz一样,这意味着它会播放较慢. 所以换句话说,我将以非常简单的方式使用它来改变音频的速度. 这是更改位深度的代码,我希望可以为此重复使用. Int32 bytesrecorded = e.BytesRecorded; byte[] newArray16Bit = new byte[bytesrecorded / 2]; fixed (byte* sourcePtr = e.Buffer) fixed (byte* targetPt
16 2024-04-26
编程技术问答社区
如何在C#中从存储在项目资源文件夹中的音频文件中提取文件路径
我在提取音频文件的文件目录时遇到了问题,该文件存储在我的项目资源文件夹中.在我的项目中,我有一个mysounds.resx文件,其中添加了一个文件(abc.mp3). WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); wplayer.URL = "E:/xyz.mp3"; wplayer.settings.setMode("loop",false); wplayer.controls.play(); 在这里,当我在wplayer.url中给出" e:/xyz.mp3"目录时,它的效果很好.但是我想做的是从mysounds.resx文件中获取文件路径,然后我存储了abc.mp3,我想从mysounds.resx文件中使用文件路径,而不是任何绝对路径. 有人可以帮助我吗?我在C#中不是很好.我真
10 2024-04-26
编程技术问答社区
复制音频编解码器在转码mxf视频文件时出现异常
我们正在使用Azure Media Services(MES处理器)将各种输入格式的视频文件转成MP4输出格式. 如果我们有一个MXF输入文件,则在尝试转码视频时会收到以下异常(copyAudio选项) Azure Media ReEncode error message: An error has occurred. Stage: ApplyEncodeCommand. Code: 0x00000001. 此例外消息是相当通用的,并且对此原因没有太多见解. 任何想法如何保持原始音频,而仅转码视频就非常感谢. 配置: { "Version": 1.0, "Sources": null, "Codecs": [ { "Type": "H264Video", "KeyFrameInterval": "00:00:02", "SceneChangeDetection
10 2024-04-26
编程技术问答社区
使用SharpDx或IMSourceReader从mp4文件中读取第二条音轨流
我在应用程序中有一个要求,在该应用程序中,我必须从MP4文件中读取所有可用的跟踪流. MP4文件编码AAC格式的曲目数量.我必须解码以从文件中获取所有可用的曲目.目前,我正在使用SharpDX和Imsourcereader(Media Foundation DLL)阅读流.但是默认情况下,Sourcereader仅返回文件中的第一个音频流.我做的正确吗?或者我必须使用其他任何第三方库来实现这一目标? 解决方案 配置阅读器,您可以在阅读样本时选择哪些流将传递.通常,您不希望选择流.一个例子是一部电影,其中包含其他音频流(西班牙语,法语或导演评论).结果,大多数时间流选择与以下内容一样简单: // error checking omitted for brevity hr = reader->SetCurrentMediaType((DWORD)MF_SOURCE_READER_FIRST_AUDIO_STREAM, nullptr, audioMediaType); h
14 2024-04-25
编程技术问答社区
抓取出现在Windows音频混合器中的音频会话(C#或C++)。
我试图弄清楚如何在音频混音器中出现单个音频流以将其重新布线重新布线为聚合音频设备.我特别希望将它们作为谨慎的流以我制作的程序为目的(如果将它们缩减为2通道混合物,这会破坏我试图实现的目的.) e.x.:(正如我刚刚创建了这个帐户一样,我显然无法发布图像,所以这是指向图像的链接) Windows Audio Cimio Mixer 在此中,我希望抓住"系统声音"和"流客户端bootstrapper"作为谨慎的音频流到其他地方路由的,同时还要维护其原始目的地(本质上是将音频复制到原始音频设备上同时). 我想在C#或C ++中执行此操作.我已经仔细阅读了Microsoft发表的音频API,尽管有些事情看起来与我想做的事情接近,但没有什么可以打在头上的.感谢任何帮助.谢谢. 解决方案 可以使用 IAudioSessionManager2::GetSessionEnumerator 和朋友(示例c ++代码为在这里和那里).标准的Windows音量混音器应用程序也使用此
16 2024-04-25
编程技术问答社区
如何用c#将wav文件分割成两个或多个部分
在这里,以下代码将大型600MB音频WAV文件分为两个部分,请点击事件. protected void Button1_Click(object sender, EventArgs e) { string inputFile = Server.MapPath("~/inputPath/BetterFasterCheaperGovt-HD+720p.wav"); // Substitute this with your Input File FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read); int numberOfFiles = 2; int sizeOfEachFile = (int)Math.Ceiling((double)fs.Length / numberOfFiles); for (int i = 1; i
24 2024-04-25
编程技术问答社区
对象被销毁时,audio.play()不工作
当GameObject被摧毁时,我正在尝试播放声音.但是声音不会播放.我已经尝试过它,并通过将音频剪辑分配到变量上,但似乎都没有用.如果我设置了在醒着时播放的声音,那么当GameObject产生时会播放,所以我知道声音夹有效 - 但是当它被销毁时它不会播放. using UnityEngine; using System.Collections; public class DestroyByContact : MonoBehaviour { public GameObject explosion; public GameObject explosion02; public GameObject explosionShot; public int scoreValue; public GameController gameController; public int health; public AudioClip expl
12 2024-04-25
编程技术问答社区
使用.NET来检测.ogg文件的属性?通道数、每通道比特数、采样率?
有人知道如何检测各种.OGG文件属性,例如频道数量,每个频道和采样率? 我想在不使用DirectX的情况下执行此操作,任何人都可以推荐一个可以做到的库.谁能推荐一个可以这样做的开源库,可以从托管代码中调用? 解决方案 弄清楚了它并写了有关: 其他解决方案 我认为 stackoverflow用户发布了一项用于使用OGG文件的代码: 14606 其他解决方案 不知道库,但是文件格式看起来很理智.您应该能够编写一些相当微不足道的代码. 请参阅
12 2024-04-25
编程技术问答社区
使用Xamarin从iPhone的麦克风中串流音频
​​录制使用AudioQueue和Monotouch静态静态证明如何获得如何获得使用Xamarin.ios通过iPhone的麦克风进行音频.我的问题是:如何保持麦克风连续录制?我基本上想只要应用程序打开,并且不断捕获音频流(请注意,我不想将流以文件保存为文件).在长期运行时? 解决方案 这应该有效: httpps ://github.com/sami1971/simplymobile/blob/master/ios/simplymobile.media/audio/audio/audiostream.cs 在应用程序启动时初始化并使用start(),然后在应用程序关闭时呼叫stop()(或转到背景).捕获的缓冲区通过事件处理程序的Boadcast提供. 编辑:这是一个快速的Waverecorder类.我没有时间测试它,因此,如果您发现其中的错误,请推回更改或让我知道需要更改的内容. https://github.com/sami1971/SimplyMobile/bl
20 2024-04-25
编程技术问答社区
用C#语言将.wav转为.flac转换器
我的程序在.wav中录制语音并将其转换为.flac 我将把这个.flac文件发送到Google,希望我能得到声音的文字. 但是,当我的程序试图将文件发送到Google时是错误的:"该过程无法访问文件'c:\ users \ ahmad Mustofa \ documents \ documents \ Visual Studio 2010 \ projects \ project \ fp \ voice.flac.flac'另一个过程." .我不知道仍使用该文件的哪个过程. 这是我的代码: string inputFile = Path.Combine("wav ", input);//the converter string outputFile = Path.Combine("flac", Path.ChangeExtension(input, ".flac")); if (!File.Exists(inputFile))
12 2024-04-25
编程技术问答社区
如何用C#语言改变Windows中的扬声器配置?
我知道这个旧线程:存在什么API?,但确实没有回答这个问题.而且已经多年了.是的,我正在使用naudio.coreaudioapi,但我找不到任何有用的信息. mmdevice.properties已阅读.有没有办法在C#中以编程方式进行此操作?我不再确定. 您还可以找到以下渠道: AudioEndpointVolumeChannels,但仅允许频道. 我想到的另一种解决方案是某种"宏",它随着鼠标单击的动作而改变,但这很难看. Naudio API应该有正确的安装,但是我在那儿没有找到任何有关如何做的文档.我整天都在谷歌搜索,什么也没发现.旧的coreapis被移到那里. using NAudio.Wave; using NAudio.CoreAudioApi; //Can't do anything with these Devices, but change the volume????!!! var deviceEn
18 2024-04-25
编程技术问答社区
文件质量来自文件的Windows语音识别(SAPI)
我试图在音频流输入(通过UDP)上执行语音识别.我正在使用Microsoft语音识别(SAPI).当我使用麦克风测试语音识别时,我会获得质量良好(无论是在C#还是在C ++中).但是,一旦此信息来自WAV文件(或我的UDP流中的存储器缓冲区),识别率就会大大降低.我尝试在Audacity中将文件保存在44100Hz中,并在C#中编写了我自己的代码来编写WAV文件.当然,我使用完全相同的麦克风,声音在文件中听起来不错. SAPI可以使用不同的型号用于麦克风输入和文件输入吗?有人遇到这个问题(并且有任何解决方案)吗? 下面是我的C#代码(尽管我在C ++中有完全相同的问题). SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); Grammar dictationGrammar = new DictationGrammar(); recognizer.LoadGrammar(dictation
24 2024-04-25
编程技术问答社区
从.mp4的通道音频?
我在搜索后遇到了不知所措的情况. 我试图从.mp4专门引导音频以用于驱动器. 我知道有些程序从.mp4中提取音频,但是我正在寻找另一种方法而不使用诸如此类的外部应用程序..是否有人可以指示我指向我解决这个问题? 谢谢, -k 解决方案 开源库libavcodec,它是FFMPEG的一部分,有能力完成您想要的工作.该来源可从链接文本.
10 2024-04-25
编程技术问答社区
确定主音量卷作为事件的更改(卷更改侦听器)
我想将Windows的主音量绑定到程序中的滑块.因此,我搜索并找到了一些方法GET或SET主卷 +一些类似的库: 从XP到Windows 8的音量 一些我看到带有循环的代码以获取卷值的地方: loop 一些我看到带有计时器的代码以获取卷值... 我还看到一些示例可以确定音量,但是在测试中之一之后,我在Windows 8中看到了一些错误: c# - 调整Vista和Windows 7中的主音量 编辑: 现在我有以下课程.我创建一个实例,并使用properthange事件通过Trace.Writeline显示卷.但是,当我更改Windows卷时,会导致未接班的错误! public class AudioEndpointVolumeEnforcer : INotifyPropertyChanged { private MMDeviceEnumerator mmDeviceEnumerator; private MMDevice mmDevi
12 2024-04-25
编程技术问答社区