【发布时间】:2019-11-17 18:29:26
【问题描述】:
我目前正在尝试为学校完成一个项目,该项目涉及读取音频“wav”文件,使用 golomb 编码器对样本进行编码,将结果写入二进制文件,在另一个脚本上读取该二进制文件并对其进行解码使用哥伦布解码器。 分配指南建议我开发一个 BitStream 类,它可以读取和写入单个位并读取和写入 n 位。 我已经完成了 golomb 编码器和解码器,它似乎运行良好。但是,我在使用 BitStream 部分时遇到了问题。我曾尝试在网上搜索现有的课程,但由于我对编程还很陌生,所以它们看起来都超级复杂。我的 golomb 编码器返回一个 1 和 0 的字符串,解码器使用类似的字符串作为输入。 我的另一个问题是:当我完成二进制文件的编写后,我如何知道每个示例代码的开始和结束位置?如何将采样频率传递给解码器?我如何知道音频样本的左右声道开始和结束的位置?如何编码每个单独样本的哥伦布编码器的 M 参数? 顺便说一句,我应该在 Python 中做到这一点。
提前致谢!
【问题讨论】:
-
你能不能把这个格式好一点,很难读。能分享一下相关代码吗?见minimal reproducible example。此外,这似乎相当广泛。
-
我建议您使用
b标志查看open()。我还建议您重新考虑如何实现编码器和解码器以直接处理字节而不是处理 0 和 1 的字符串。 -
Reading and Writing Files ... 欢迎来到 SO。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。这不是讨论论坛或教程服务。您应该花一些时间通过the Tutorial 练习这些示例。它将向您介绍 Python 为解决您的问题所提供的工具。
-
这既不清楚又过于宽泛。请专注于单个问题,并提供相关代码(而不是仅仅影射代码)。
标签: python python-3.x bitstream