Matlab代码到C#代码的转换

爆破
   function [ samples,y, energies] = energy( speech, fs )
   window_ms = 200;
   threshold = 0.75;

   window = window_ms*fs/1000;
   speech = speech(1:(length(speech) - mod(length(speech),window)),1);
   samples = reshape(speech,window,length(speech)/window);
   energies = sqrt(sum(samples.*samples))';

   vuv = energies > threshold;
   y=vuv;

我有这个matlab代码,我需要用c#编写此代码。但是我不明白代码的最后一部分。我也认为语音对应于根据代码第一部分的数据列表或数组。如果不是,请有人可以解释此代码的作用。我只想知道逻辑。fs = 1600或3200;

安姆罗

该代码采用表示信号的数组。然后,它根据指定长度的窗口将其分为几部分,计算每个段中的能量,然后找出哪些段的能量高于某个阈值。

让我们详细了解一下代码:

speech = speech(1:(length(speech) - mod(length(speech),window)),1);

上一行基本上是确保输入信号的长度是窗口长度的倍数。假设speech是一个由11个值组成的数组,并且窗口长度为5,则代码将仅保留前10个值(从1到5 * 2),除去最后一个剩余的一个值。

下一行是:

samples = reshape(speech,window,length(speech)/window));

也许最好用一个简单的例子来解释一下:

>> x = 1:20;
>> reshape(x,4,[])
ans =
     1     5     9    13    17
     2     6    10    14    18
     3     7    11    15    19
     4     8    12    16    20

因此,它将数组重塑为“ k”行(k是窗口长度)和完成数组所需的列数的矩阵。因此,第一个“ K”值将是第一个段,下一个“ k”值将是第二个段,依此类推。

最终,下一行将计算每个段中的信号能量(以矢量化方式)。

energies = sqrt(sum(samples.*samples))';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Quickwatch 到 C# 代码的转换

来自分类Dev

C ++到C#代码转换,引用与值类型的麻烦

来自分类Dev

将fft代码从Matlab转换为C#

来自分类Dev

从C#到VB.NET的代码转换

来自分类Dev

C#代码到vb.net的转换问题

来自分类Dev

从C ++到C代码的转换,是否等效?

来自分类Dev

C ++至C#代码转换类型

来自分类Dev

Matlab到Python代码的转换:矩阵未对齐

来自分类Dev

将C#代码转换为Java代码

来自分类Dev

如何将Javascript代码转换为C#代码

来自分类Dev

将Java代码转换为C#代码

来自分类Dev

如何将此 .XAML 代码转换为 C# 代码

来自分类Dev

将VB代码转换为C#

来自分类Dev

将VB代码转换为C#

来自分类Dev

将VB转换为C#代码

来自分类Dev

将C#代码转换为python

来自分类Dev

Python至C#代码转换

来自分类Dev

将 C# 代码转换为 VBscript

来自分类Dev

MATLAB angle()到C#的转换

来自分类Dev

MATLAB angle()到C#的转换

来自分类Dev

C#到VB.net代码转换。匿名的New()问题

来自分类Dev

指针从C#代码到VB.net的有问题的转换

来自分类Dev

C#到VB.net代码转换。匿名的New()问题

来自分类Dev

将matlab代码转换为python代码

来自分类Dev

Matlab 2 Python代码转换

来自分类Dev

在 Python 中转换 MATLAB 代码

来自分类Dev

将Matlab代码转换为静态C ++库

来自分类Dev

将Matlab / C函数转换为不带源代码的版本

来自分类Dev

卷曲代码到python转换