• PC-1500的代码存入WAV文件


    1保存    1

    1.1 操作    1

    1.2 波形说明    4

    1.3 波形整形    5

    1.4 压缩    8

    2载入    9

    2.1 操作    9

    2.2 音量    9

    3 wav2bin代码解析    10

    3.1 读取一个数据位    10

    1保存

    本章将介绍如何把PC-1500机内的BASIC代码保存到PCwav文件内。您需要:PC-1500的底座(CE-150)、录音软件(本章以Cool Edit 2.1为例进行说明)、E500Comm14.11.23

    1.1 操作

    准备一根音频线。普通的音频线也行,如下图所示

    1.1

    音频线一端插入底座的MIC插孔(这是PC-1500输出音频信号的地方),另一端插入PCMIC插孔。一定不要插入PCLine In插孔。Line InMIC都是PC音频输入的插孔,但它们有很大的区别:Line In直接把音频信号传给声卡,MIC会把音频信号放大后再传给声卡。PC-1500输出的音频信号很弱,使用Line In插孔,PC根本无法辨认。

    运行Cool Edit 软件,新建一个波形文件,如下图所示:

    采样率建议16000以上。声道固定为"单声道",采样精度固定为"8位"。

    1.2

    单击下图的录音按钮,然后在PC-1500上运行CSAVE命令。Cool Edit 将录音。CSAVE命令执行完毕,请单击下图的停止按钮。

    1.3

    注意波形的最大值和最小值,两者的差值应在80左右,太小则说明采集到的信号太弱了。

    1.4

    解决办法就是调整PC上麦克风的音量和麦克风加强,如下图所示:

    1.5

    Cool Edit里单击【文件】【另存为】菜单项,将录好的音频保存到wav文件里,如下图所示:

    1.6

    1.2 波形说明

    上一节记录下来的波形如下图所示。

    1.7

    理想的波形应该是正弦波,如下图所示:

    1.8

    码元宽度(竖线的间隔)为0.0004秒。左边3个码元内的正弦波频率为2500Hz;右边4个码元内的正弦波频率为1250Hz。高频码元被当做1,低频码元被当做08个码元1组成一个数据位18个码元0组成一个数据位0。因此,PC-1500输出的音频信号,其波特率为2500,其比特率大概为2500/8=312.5,每秒大概只能输出40个字节(事实上,每秒大概只能输出15个左右的字节。1KB的程序大概要1分钟才能传输完毕)。

    1.3 波形整形

    波形整形有这么几个目的:

    1、图1.7所示波形其振幅非常关键:振幅太小则PC-1500将无法接收音频信号。因此,有必要将波谷的样本值调整为0,波峰的样本值调整得大一些(一般大于180即可)。

    2、可以简化波形,如下图所示:可更改采样率为5000Hz,这样一个码元里只需要2个采样点。左边三个码元表示1,右边四个码元都表示0

    1.9

    简化之后,wav文件的大小会减小很多。假定录制wav文件时的采样率为16000Hz,而简化后的采样率变成了5000Hz,数据量将减少近70%

    不过,播放简化后的wav文件其波形就不是非常完美的了。下图是使用Cool Edit打开globe.wav文件(下载自www.pc1500.com)看到的内容:

    1.10

    globe.wav的采样值只有两个:0173。上图上面一排小方块的采样点,其采样值就是173。为什么不设置为最大值255呢?因为如上图所示:高频变低频时,会有一个突然变高的波峰。为了让这个突变的波峰尽量接近255,只能设置采样值的最大值为173了。

    wav文件的波形整形请通过E500Comm来实现。该程序下载方法:

    进入网盘 http://pan.baidu.com/s/1gd7XDkf

    再进入 publicToolsE500Comm 下载压缩包E500Comm14.11.23.rar

    使用E500Comm处理wav文件的步骤:

    1、运行E500Comm。选择计算器为"PC-1500",然后单击"确定"按钮;

    1.11

    2、程序主界面请单击"1.程序"按钮

    1.12

    3、单击【文件】【打开...】菜单项,载入wav文件,如下图所示。

    1.13

    4、单击上图【文件】【保存】菜单项(或【另存为】菜单项),保存wav文件。

    1.4 压缩

    波形整形后,能否压缩为MP3wma?经笔者测试是不行的。因为MP3wma都是有损压缩。

    2载入

    本章将介绍如何把录制在wav文件里的BASIC代码载入到PC-1500机内。

    2.1 操作

    音频线一端插入底座的EAR插孔(这是PC-1500输入音频信号的地方,也就是"耳朵"),另一端插入PCLine Out插孔。一定不要插入PC的耳机插孔。Line Out和耳机都是PC音频输出的插孔,但它们有很大的区别:Line Out是声卡直接输出的音频信号,耳机则是声卡输出的音频信号经放大后输出的。不使用耳机的原因一是音量太大,二是容易失真。

    PC-1500上运行命令CLOADPC上播放wav文件。注意:PC上的能突然发声的程序请关闭,如:QQ。否则会打扰PC-1500接听wav文件。

    2.2 音量

    PC-1500接听声音文件,最难控制的就是音量。

    该如何精准的调节音量呢?笔者在这里介绍一个方法——使用 Cool Edit 查看Line Out输出的音频信号。具体做法为:

    1、将插入PC-1500底座的EAR孔的音频线插头拔下来,插入PCLine In插孔。也就是说:Line Out输出的音频信号直接进入Line In插孔;

    2PC上播放wav文件;

    3、使用Cool Edit软件录制音频,查看音频波形的振幅。这个振幅最好在170以上。

    对于波形被处理后的wav文件,简单的把音量调整到最大即可(假定播放wav音频的软件是Windows Media Player,则其音量也要最大。其它播放软件不知是否放大了音频信号,最好用Cool Edit查看一下音频输出)。

    3 wav2bin代码解析

    wav2bin下载自http://www.pocketmuseum.com/index.html。它可以将wav文件转换为bas文件(文本格式的BASIC代码)和img文件(二进制格式的BASIC代码)。

    3.1 读取一个数据位

    3.2毫秒内,8个周期的高频波(2500Hz),表示二进制位1。如下图所示:

    3.1

    3.2毫秒内,4个周期的低频波(1250Hz),表示二进制位0。如下图所示:

    3.2

    换句话说就是:二进制位1与中间红线的交点个数为16;二进制位0与中间红线的交点个数为8

    数据存入wav文件时,会有1个起始位04个数据位,6个停止位1。所以,问题的关键在于把数据位前面的两个二进制位10读取出来。换句话说就是找到一段6.4毫秒的数据,前面3.2毫秒交点数为16,后面3.2毫秒交点数为8。这样就找到了起始位,接着读取4个数据位。

  • 相关阅读:
    Python模块之logging
    Python模块之configparser
    python序列化模块 json&&pickle&&shelve
    Python模块之hashlib
    最短路之Floyd(多源)HDU 1874
    Python类知识学习时的部分问题
    第9章 Python文件操作目录
    第8章 Python类中常用的特殊变量和方法目录
    第7章 Python类型、类、协议目录
    第6章 Python中的动态可执行方法目录
  • 原文地址:https://www.cnblogs.com/hanford/p/6178073.html
Copyright © 2020-2023  润新知