音频处理和删除音频的某些部分

2024-03-31

我是语音编码新手,现在我成功地在文件中录制麦克风,并将每 10 秒保存在一个文件中SaveRecordtoFile功能(这样做没有问题)

现在我想从记录的数据中删除例如 2 秒,这样我的输出将是 8 秒而不是 10 秒,在randomTime array 0是我想删除的秒数...

在 for 循环中,我复制了数据waveHeader->lpData在新的缓冲区中if (randomTime[i] == '1')

看来这是一个真正的算法并且应该有效,但问题是输出,一些输出很好(大约 70% 或更多),但其中一些输出已损坏

我认为我的代码有错误,但我调试了这段代码几天,但我不明白问题是什么?

由于我 70% 或更多的输出都很好,我认为这不是因为字节或样本


您的代码可能会分解样本,之后流不同步并且您会听到很大的噪音。

这是怎么发生的?您的样本大小是 4 个字节。因此,切勿复制任何不是 4 倍数的内容。10 秒的音频将占用 10x48000×4=1920000 字节。然而Sleep(10000)总是接近 10 秒,但不完全是 10 秒。这样就可以得到1920012字节。然后你就可以:

dwSamplePerSec = waveHeader->dwBytesRecorded / 10; // 10 Secs

返回 192001(不是 4 的倍数)并且蒸汽不​​同步。如果你幸运的话,你会在 10 秒内收到 1920040 字节,并且除以 10 后仍然是 4 的倍数,那就没问题了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

音频处理和删除音频的某些部分 的相关文章

  • boost线程在中断时不打印退出消息

    我有这段代码用于执行三个线程 其中第二个线程应在按 Enter 时中断并打印退出消息 void input val DO STUFF return void process val DO STUFF try cout lt lt waiti
  • 当我单击 GridView 项时返回 ImageView 实例

    当我点击GridView项时如何返回ImageView实例 我为 ItemClick 创建自定义绑定事件 public class ItemClickSquareBinding MvxBaseAndroidTargetBinding pri
  • 字节到二进制字符串 C# - 显示所有 8 位数字

    我想在文本框中显示一个字节 现在我正在使用 Convert ToString MyVeryOwnByte 2 但是 当字节开头有 0 时 这些 0 就会被删除 例子 MyVeryOwnByte 00001110 Texbox shows g
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • CMake - 将预构建库链接到 C# 项目

    我正在使用 CMake 构建 C 库 该库依赖于已构建的库 dll 我似乎无法让图书馆链接到我的图书馆 我尝试过使用target link libraries mylib external lib 我也尝试过暴力破解 reference e
  • C#:使用 System.Text 和 System.Text.RegularExpressions 之间的区别

    在 ASP NET C 应用程序中 我注意到为了使用 Regex 和 StringBuilder 我必须将两者都放在 using System Text using System Text RegularExpressions 从简单的角度
  • 推送 Lua 表

    我已经创建了一个Lua表C 但我不知道如何将该表推入堆栈顶部 以便我可以将其传递给 Lua 函数 有谁知道如何做到这一点 这是我当前的代码 lua createtable state libraries size 0 int table i
  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • C# ToString("MM/dd/yy") 删除前导 0 [重复]

    这个问题在这里已经有答案了 可能的重复 格式化 NET DateTime Day 不带前导零 https stackoverflow com questions 988353 format net datetime day with no
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List
  • 在 MVVM 中,可以在视图后面的代码中访问 ViewModel 吗?

    在 MVVM 模式中 是否可以接受甚至可以访问视图代码后面的 ViewModel 属性 我有一个可观察的集合 它填充在 ViewModel 中 我需要在视图中使用它来绑定到带有链接列表的无限滚动条 IE private LinkedList
  • SSBO 是更大的 UBO?

    我目前正在 OpenGL 4 3 中使用 UBO 进行渲染 以将所有常量数据存储在 GPU 上 诸如材料描述 矩阵等内容 它可以工作 但是 UBO 的小尺寸 我的实现为 64kB 迫使我多次切换缓冲区 减慢渲染速度 我正在寻找类似的方法来存
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • 从 C# 中的 .NET SecureString 读取单个字符?

    WPF 的PasswordBox 返回一个SecureString 它对窥探者隐藏密码 问题是你最终必须获得密码的值 而我在网上找到的建议都涉及将值复制到字符串中 这会让你回到窥探者的问题 IntPtr bstr Marshal Secur
  • 最后从同一类中的其他构造函数调用构造函数

    我在这里读到可以调用另一个构造函数从同一类中的另一个构造函数调用构造函数 https stackoverflow com questions 829870 calling constructor from other constructor

随机推荐

  • 具有更高种类类型的 GADT 类型推断

    我有一些可以编译的代码 LANGUAGE ScopedTypeVariables KindSignatures GADTs FlexibleContexts module Foo where data Foo gt where Foo c
  • 在 MAC 上编译 SDL

    include ffmpeg libavcodec avcodec h include ffmpeg libavformat avformat h include ffmpeg libswscale swscale h include ff
  • Android Webview - 返回应用程序时防止重新加载

    当您返回应用程序时 如何防止在 webview 上重新加载 当点击主页键然后返回应用程序时 网络视图被重新加载 我不想要这种行为 我希望用户查看他们访问的上一页 无需重新加载 private WebView webView Override
  • ggplotly 和 geom_area :将鼠标悬停在区域(而不是点)上时显示信息

    当涉及到绘图时 将鼠标悬停在特定点上时很容易显示信息 这段代码完成了这项工作 toy df data frame t c seq 1 10 seq 1 10 value c runif 10 0 10 2 runif 10 0 10 eve
  • Outlook 宏在因错误而失败之前运行了 250 次迭代

    描述 我有一个 Outlook 宏 它循环浏览文件夹中选定的电子邮件并将一些信息写入 csv 文件 在失败之前 它一直可以完美地工作到 250 这是一些代码 Open strSaveAsFilename For Append As 1 Co
  • 在同一页面上同时使用 highcharts 和 highstock

    希望有人能帮忙 我尝试在单个页面上使用 highcharts 和 highstock 从 CDN 加载 最初我设置了各种 highcharts 带向下钻取的仪表和条形图 并使用以下所有内容都工作正常
  • HTML div 元素不采用其父级的高度,即使父级具有非零高度

    我有一个相当简单的问题 我有一个包含三个孩子的容器 div 两个 div 和一张桌子 以下是CSS container overflow auto child1 float left width 50px height 100 table1
  • Java - 使用分隔符分隔不同参数来解析文本

    如何使用多个分隔符或单个分隔符来检测和分隔不同的字符串匹配项 例如 我使用Scanner解析以下字符串 MrsMarple new Person MrsMarple age 30 我想分离出这个字符串来按顺序确定何时创建新人以及何时设置他们
  • jQuery(document).width() 不包括可视区域之外的宽度

    jQuery document width 不包括总宽度 可见宽度 当有水平条时可见宽度之外 它等于jQuery window width 我想jQuery window width 是可视区域宽度 jQuery document widt
  • ASP.NET Core 2.1 MVC 使用 XMLHttpRequest 将数据从 JavaScript 发送到 Action 方法

    这与下面类似 但没有 Ajax 我正在使用 JavaScript 和 XMLHttpRequest AJAX post数据到达ASP NET Core 2 1控制器时为空 https stackoverflow com questions
  • 何时使用单元测试? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 旋转呈现视图并锁定呈现视图控制器的方向

    我正在开发仅支持横向方向的iPad应用程序 我希望允许一些呈现的视图控制器支持所有方向 而不改变呈现视图控制器的方向 支持 Xcode 设置中除倒置之外的所有方向 我用来呈现视图控制器的代码 ViewController vc self s
  • 需要在 Mac 上安装 Ruby 2.7.2 的帮助

    我正在尝试在我的 Mac 具有所有更新的最新操作系统 上安装 Ruby 版本 2 7 2 并执行以下操作 brew update brew upgrade rbenv ruby build and then rbenv install 2
  • C++11 虚拟析构函数和移动特殊函数的自动生成

    C 11 中自动生成特殊移动函数 构造函数和赋值运算符 的规则指定不能声明析构函数 逻辑大概是 如果你需要在破坏方面做一些特殊的事情 那么这一举动可能不安全 然而 为了在多态性中正确调用析构函数 有必要将基类的析构函数声明为虚拟 否则通过基
  • AngularJS 的配置阶段

    引导 Angular 应用程序的配置阶段发生了什么 无法想象 现在我对提供商感到困惑 SO 可能是配置阶段的洞察力帮助我理解整个过程 因为提供程序可以在配置阶段注入 Thanks 角度应用程序使用服务 http location ETC 有
  • 申请账户信息不正确

    验证应用程序时出现此错误 重新启动 Xcode 和 Mac 机器后 苹果修复了导致问题的任何原因 问题似乎已经解决 在 OS 10 9 5 上通过 iTunes Producer 3 1 成功交付包
  • hql 中分区的 row_number()

    hql 中分区上的 row number 相当于什么 我在 hql 中有以下查询 select s Companyname p Productname sum od Unitprice od Quantity od Discount as
  • 恢复到 nvm 默认版本

    每当我使用 cd 时 我总是得到 Reverting to nvm default version N A version default gt N A is not yet installed You need to run nvm in
  • 使用 Bash 脚本进行日志轮换

    我有以下问题 我有一个应用程序 它不断地向 stderr 和 stdout 生成输出 该应用程序的输出被捕获在日志文件中 该应用程序被重定向为 gt log txt 我没有任何选项来为此生成适当的日志记录 现在 我有一个 cron 作业 它
  • 音频处理和删除音频的某些部分

    我是语音编码新手 现在我成功地在文件中录制麦克风 并将每 10 秒保存在一个文件中SaveRecordtoFile功能 这样做没有问题 现在我想从记录的数据中删除例如 2 秒 这样我的输出将是 8 秒而不是 10 秒 在randomTime