• Matlab读取音频数据


      项目需要,读出识别的车牌,对着图片看看是否识别正确。

      有了0到9和A到Z,32个省份的音频,但是如何用matlab读出来,老版本有wavread直接读出,然后waveplay读入的即可。但是现在的是audioplayer了,对应的audiorecorder是录音用的,他是waveread的前身,然而功能却不一样。新的用法

    load chirp
    p=audioplayer(y,44100)
    play(p)
    

      注意chirp是系统自带声音,加载后包括y文件是个double的行向量,fs是播放频率或者采样频率之类的。

      问题是我不知道如何把现在的wav读取成double文件,我原来一直在搞audioplayer到底怎么用,运行现在的例子,发现audioplayer播放的是double文件,那么我就百度,发现matlab里面直接双击wav文件后会出现如下图,发现美,double文件和频率,然后我就想把所有的音频文件这样处理成2个mat分别用,但是太麻烦了

      我偶然看到下面有个“生成matlab代码”,代码如下

    function importfile(fileToRead1)
    %IMPORTFILE(FILETOREAD1)
    %  从指定文件中导入数据
    %  FILETOREAD1:  要读取的文件
    
    %  由 MATLAB 于 15-Apr-2016 19:50:36 自动生成
    
    % 导入文件
    newData1 = importdata(fileToRead1);
    
    % 在基础工作区中从这些字段创建新变量。
    vars = fieldnames(newData1);
    for i = 1:length(vars)
        assignin('base', vars{i}, newData1.(vars{i}));
    end
    

      只需输入文件名即可,哈哈....

      观察代码发现直接importdata就好了,返回ans的结构体,里面包括data和fs。如果用上面的importfile来做的话发现读不出来data,可能是因为,报错data未定义,所以我就直接用importdata,然后

    play(audioplayer(ans.data,22000));
    

      但是没声音........系统自带的可以。

  • 相关阅读:
    linux进程管理
    使用PL/SQL Developer 学习pl/sql
    Linux入门到放弃之一《在VMware虚拟机中安装Linux系统(RedHat)》
    解决Java连接Oracle 12c存在的问题
    Linux安装64位Mysql5.7.22
    在centos下启动nginx出现Failed to start nginx.service:unit not found
    windows10下IntelliJ IDEA使用logback设置日志输出目录
    Windows下mysql5.6升级到5.7的方法
    Spring+Hibernate+Struts2整合之实现登录功能
    Hibernate关系映射之many-to-many(多对多)
  • 原文地址:https://www.cnblogs.com/hxsyl/p/5396758.html
Copyright © 2020-2023  润新知