精华内容
下载资源
问答
  • 创建声音文件
    千次阅读
    2019-07-17 15:23:35

    一、 声音的读与写

    以下将用到python自带的wave模块进行操作。

    • 声音文件的读取
      以下以wav文件为例。
      使用wave模块进行声音的读取操作是:wave.open(r"wav文件路径",“rb")
      ‘rb‘表示命令为只读模式。
      wav.open命令后将返回一个wave_read对象,通过调用wave_read的方法可以获取wav文件的参数。
    • wave_read对象的方法有以下几种:
      (假定已经执行以下wave.open()代码)
    f=wave.open(r"wav文件路径","rb")
    

    (1)f.getparams():获取wav文件的参数
    图片1

    调用此方法后,将返回六个参数,分别为wav文件的声道、采样深度、采样率、取样点数、压缩类型、压缩类型的描述。wave模块只支持非压缩的类型,后面两项参数可以省略。
    另外,通过

    f.getchannels()
    
    f.getsampwidth()
    
    f.getframerate()
    
    f.getnframes()
    

    四个方法可分别获得声道数、采样深度、采样率、取样点数四个参数。

    (2)f.readframs(nframes):读取声音数据
    图片2

    nframes为必需指定的参数,指定需要读取的长度。
    如上图所示,调用此方法后,将返回以字符串代表的二进制数据。
    (3)np.fromstring(str_data,dtype=np.short):将二进制文件转换为可计算的数组。
    图片3

    str_data=f.readframs(nframes)
    np.short ####问题-1
    令wave_data=np.fromstring(str_data,dtype=np.short),此时wave_data是一个一维数组。
    通过改变它的形状使其重新变为双声道文件:

    wave_data.shape=-1,2
    

    将其转置得:
    wave_data = wave_data.T

    • 补充:
      通过取样点数和取样频率能计算出每个取样的时间,
    time = np.arrange(0, nframes) * (1.0 / framerate)
    
    • 声音文件的写入
    • 导入需要的模块;
    import wave
    import numpy as np
    import scipy.signal as signal
    

    wave用来导出声音文件,numpy用来作数据处理,signal用于决定声音文件的波形。

    • 设置参数:
    framerate = 44100
    time = 10
    
    • 设置声音文件的波形及数据类型:
    ####在0~time范围内,生成framerate个长度为1.0/framerate的小区间,以此近似模拟声音波形。
    t = np.arange(0, time, 1.0/framerate)
    ####以((t, 100,)为起始点,(time, 1000)为终止点,设置频率扫描为线性曲线。
    wave_data = signal.chirp(t, 100, time, 1000, method='linear') * 10000
    ####设置数据存储方式为两个字节为一单位。
    wave_data = wave_data.astype(np.short)
    
    • 创建一个新文件:
    f = wave.open(r"文件名.wav", "wb")
    
    • 设置声音文件的参数:
    f.setnchannels(1)
    f.setsampwidth(2)
    f.setframerate(framerate)
    
    • 将设置好参数的wav_data转换为二进制数据后写入声音文件中:
    f.writeframes(wave_data.tostring())
    f.close()
    

    在python中,二进制数据以字符串表示,所以wave_data.tostring()即表示将wave_data转换为二进制数据。

    此文为转载文章,原文链接

    更多相关内容
  • 节奏表创建的xml文件以更快地添加声音要在氢气中添加声音文件夹,需要一个包含所有声音的drumkit.xml文件,以便在程序内使用。 ListFiles将帮助您创建一个xml文件,以添加到您的声音目录中使用以下命令运行ListFile...
  • RAV 根据源声音的随机碎片创建新... 返回的声音文件将为 mp3 格式。 RAV 依赖以下库来帮助处理各种流程: flask:组合 Web 应用程序 scipy:读取和写入 wav 文件 numpy:操作样本 pydub:在 wav 和 mp3 格式之间转换
  • 该脚本基于为标准具.wav文件创建声音指纹的功能。 (Etalon文件分为几部分。 然后在每个部分中,我们都在寻找与声音的最大振幅相对应的频率。) 我们得到一个频率列表 (它将存储在文件中:frequency_list_etalon...
  • Java播放声音文件

    万次阅读 2014-02-17 09:13:51
    播放声音是java对多媒体的支持一个重要部分,现今流行的声音格式有wav,mid,au为扩展名的声音文件,而java现主要支持以au为名的声音。 在Applet中专门提供了类AudioClip来对声音的支持。由于Applet的多媒体功能书...

    一,在Applet中播放声音

     

    播放声音是java对多媒体的支持一个重要部分,现今流行的声音格式有wav,mid,au为扩展名的声音文件,而java现主要支持以au为名的声音。

    在Applet中专门提供了类AudioClip来对声音的支持。由于Applet的多媒体功能书上都有很清晰的介绍也很简单。

    我们就以一个例子来结束这部分的说明。


    import java.applet.*;
    public class sounda extends Applet
    {
    	public static void main (String[] args)
    	{
    		AudioClip ac = getAudioClip(getCodeBase(),"sloop.au");
    		ac.play();
    		// ac.loop();
    		// ac.stop();
    	}
    }

    上面例子只是很简单的说明,AudioClip是java中播放类。

    java中提供了两个很有用的方法getCodeBase(),getDocumentBase()。 它们分别返回Applet本身和包含此Applet主页的URL地址上面的sloop.au即我机器上的声音文件。

    我们在此直接使用了AudioClip的play方法来播放声音。大家可测试用Applet的图像功能加入按钮。

     

    二,java应用程序中的声音播放

     

    由于在应用程序并不支持AudioClip类, 所以播放声音文件成了一大难题。制做自己的java播放器或应用媒体方面的java应用程序我们就不能支持声音了吗?不是的。

    sun公司为应用程序中的声音支持另提供了一个java新包 -- sun.audio。 在这个包下面提供了大部分所需要的声音处理类。

    注:sun包下面还有很多很有意思的技术支持,如java2D,Tools等,大家可自己尝试去使用。


    下面我们就来做个自己的声音播放测试

     

    import sun.audio.*;
    import java.io.*;
    public class Sound 
    {
    	public static void main(String[] args)
    	{
    		try {
    			FileInputStream fileau=new  FileInputStream("sloop.au");
    			AudioStream as=new AudioStream(fileau);
    			AudioPlayer.player.start(as);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }

    注:上面两例都没有提供相应的stop方法,本文章指在方法的尝试,并非全面文章,但上面的例子都是可用的。

     

    三 javaX中Sound包的应用

     

    当我在进行上面的测试过程中,我发现javax目录下也提供了一个sound包对java声音的强大支持,并且在sun网站的jjse上可下载到相关的大量例子程序.有志于声音处理方向的朋友可下载试试,

    现在关于如何 在Java 小程序(Applet)中播放音乐以供人边浏览页面边欣赏的介绍已经很多了,但对如何在应用程序(Application)中放音乐的介绍还很少,下面我就逐步地讲解一下如何实现。

    Jun 当 前 的Java Development Kit 版本1.1.3 并不正式支持在Application 中放音乐文件,

    但这依然是可以实现的。

    首先让我们复习一下在Applet中放音乐的四个步骤,代码如下:


    import java.applet.*;
    AudioClip ac=getAudioClip (getCodeBase(), File); // 创 建Audioclip 对 象 并 装 入.au 文 件
    ac.play(); // 播 放 一 次
    ac.stop(); // 停 止 播 放 
    ac.loop(); // 循 环 播 放

    大家可能认为此代码在Application 中也能使用,但不幸的是它在编译时就会发生错误。

    因为AudioClip 对象(object)和getAudioClip() 方法(method)都是属 于java.applet 包的-- 它在Application 中无法调用。

    解决问题的办法使用一些Sun 在JDK中发布但未正式注明(undocumented)的特点。用Winzip 或Zip观察一下class.zip文件就会发现除了java.applet 包中包含对声音文件处理外,在/sun/audio目录下的sun.audio包也提供类似的方法。

    下面是实现代码和注释:


    import sun.audio.*; // 引 入sun.audio 包
    import java.io.*;
    ...
    InputStream in = new FileInputStream (Filename); // 打 开 一 个 声 音 文 件 流 作 为 输 入
    AudioStream as = new AudioStream (in); // 用 输 入 流 创 建 一 个AudioStream 对 象 
    AudioPlayer.player.start (as); //“player” 是AudioPlayer 中 一 静 态 成 员 用 于 控 制 播 放 
    AudioPlayer.player.stop (as);

    当需从网上下载文件播放时,用以下代码打开音乐文件网址:

    AudioStream as = new AudioStream(url.openStream());

    播放一个持续的声音流就复杂一些了:

    首先如上创建声音流;


    AudioData data = as.getData (); // 创 建AudioData 源 
    ContinuousAudioDataStream cas = new ContinuousAudioDataStream (data);
    AudioPlayer.player.play (cas); // 放 音
    AudioPlayer.player.stop (cas); // 停 止

    完 成 了 ! 因为以上程序使用了未公开的特性,所以不能保证它能在除了当前版本的Sun JDK以外的编译器上运行。


    该文章转载自  http://www.cnblogs.com/ZJUT-jiangnan/archive/2013/02/28/2937929.html 仅供参考学习

    展开全文
  • matlab解析出声音文件的频率

    千次阅读 2019-09-29 16:59:44
    ff.wav 是一段频率为17640HZ的已知声音文件 贴上代码: 1 %1、%[X,Fs,Bit]=wavread('d:\\ff.wav'); 2 %2、然后进行特征提取 3 %3、然后分类器识别 4 %4、输出识别结果 5 %close all; 6 %clear all;.....

    因为matlab工具集成了很多算法。记录学习了用matlab来解析声音频率。

    ff.wav 是一段频率为17640HZ的已知声音文件

    贴上代码:

     1 %1、%[X,Fs,Bit]=wavread('d:\\ff.wav');
     2 %2、然后进行特征提取
     3 %3、然后分类器识别
     4 %4、输出识别结果
     5 %close all;
     6 %clear all;
     7 [X,Fs]=audioread('d:\\ff.wav');
     8 N=2048;
     9 n=0:N-1;
    10 Xk=fft(X,N); %对信号进行快速Fourier变换
    11 nUniquePts = ceil((N+1)/2);
    12 Xk = Xk(1:nUniquePts); % 选择前半部,因为后半部是前半部的一个镜像
    13 magX=abs(Xk);%求得Fourier变换后的振幅
    14 %作完傅氏变换后要加绝对值abs(Xk);dB值:20*log(abs(Xk)/max(abs(Xk)))。
    15 ddd=20*log(magX/max(magX))
    16 iPoint = -1 ;
    17 for i=1:N
    18     if magX(i) == max(magX)
    19         iPoint = i;
    20         i
    21         break ;
    22     end
    23 end
    24 % 创建频率数组begin
    25 TXBB_THRESHOLD = 20 ;%误差范围
    26 TXBB_CHARACTERS_NUM = 64 ;%假设一共64个频率
    27 TXBB_BASEFREQUENCY_H = 17000; %起始频率
    28 g_fFrequencies =  TXBB_CHARACTERS_NUM*(0:TXBB_CHARACTERS_NUM-1) + TXBB_BASEFREQUENCY_H;
    29 % 创建频率数组end
    30               
    31 % 查找码表 begin
    32 k = 1 ;
    33 for i=1:TXBB_CHARACTERS_NUM
    34     if g_fFrequencies(i)-20 < Fs/N*iPoint && g_fFrequencies(i)+20 > Fs/N*iPoint
    35         k = i ;
    36         break ;
    37     end
    38 end 
    39 % 查找码表 end
    40 
    41 %打印结果
    42 g_fFrequencies(k)
    43 fprintf('k:%d.\n',k);
    44 disp('k:.\n');

     

    转载于:https://www.cnblogs.com/LandAll/p/4427853.html

    展开全文
  • Linux中的文件类型以及文件属性

    千次阅读 2021-05-17 03:17:45
    Linux中主要文件类型分为四种...可以是程序源代码,可执行文件、图片、声音等。在Linux终端使用以下命令来查看某个文件的属性:[root@JLUZH root]# ls -1 install.log- rw-r--r-- 1 root root 23444 2006-04-20 ins...

    Linux中主要文件类型分为四种:

    普通文件、链接文件、目录文件、设备文件

    一、普通文件

    普通文件仅仅是字节序列,Linux没有对其内容规定任何结构。可以是程序源代码,可执行文件、图片、声音等。在Linux终端使用以下命令来查看某个文件的属性:

    [root@JLUZH root]# ls -1 install.log

    - rw-r--r-- 1 root  root 23444 2006-04-20 install.log

    [root @JLUZH root]#

    注意- rw-r--r-- 1 第一个符号是 -,这就是普通文件,删除方式是rm命令

    二、目录文件

    目录也是文件,包含文件名和子目录名以及指向哪些文件和子文件的指针,查看目录文件命令:

    [root@JLUZH root]# ls -1

    drwsr-xr-x   4 root 4096 2008- 20- 12

    第一个字符是d,这就是目录文件。可以用mkdir命令来创建;cp命令把一个目录复制为另一个目录

    三、链接文件

    几个文件可以与一个i节点相关联,i节点含有一个字段含有与文件的关联数目

    [root@JLUZH root]# ls -1

    lrwxrwxrwx  1  root  root 11 10XXXXXXXXX

    其中第一个字符是l,就是连接文件。

    四、设备文件

    在Unix类操作系统下,设备是可以通过特殊文件进行访问的。所有的设备文件存放在dev目录下

    [root@JLUZH root]# ls -1 /dev/tty

    crw-rw-rw

    第一个字符是c,表示字符设备文件

    brw-rw-rw

    第一个字符是b,表示块设备文件,如光驱和硬盘等设备,用mknode命令来创建,rm来删除

    文件属性:

    在window中以后缀名来确定文件类型,在Linux中能否执行主要与文件属性有关,在Linux中的文件拥有者把文件分成三种不同权限,分别是:可读(r)可写(w)可执行(x),又有三个不同的用户级别,分别是:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)

    第一个字符显示文件类型,前边已经讲到了五种,还有

    “p”命名管道

    “f”最站文件

    第一个字符之后有三个三位数组分别是r、w、x、-。其中“-”表示用户组对此没有权限。

    第一个三位数组表示对于文件拥有者(u)对该文件的权限,

    第二个三位数组表示文件用户组(g)对该文件的权限;

    第三个三位数组表示系统里的其他文件(o)对该文件的权限

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • 从JAVA声音库中为每个MIDI文件选择一种乐器。 从文件计算速度汇集多个线程以同时播放它们。 这段代码是项目的一部分,该项目创建了一个工具,该工具可以即时提供音乐伴奏,以自定义艺术家希望播放播放音乐的乐器...
  • Python音频处理:创建一个正弦波并保存为wav文件0. 预备知识0.1 数字信号基础0.2 声学概念基础1. 创建一个正弦波2. 保存为wav文件 0. 预备知识 0.1 数字信号基础 0.2 声学概念基础 1. 创建一个正弦波 正弦波公式...
  • http://blog.csdn.net/rodulf/article/details/71169996在linux下一般用scp这个命令来通过ssh传输文件。1、从服务器上下载文件scpusername@servername:/path/filename/var/www/local_dir(本地目录)例如scproot@192....
  • LabVIEW 读写和缩放音频文件

    千次阅读 2021-10-15 16:59:41
    LabVIEW 提供了多种方式来读取和写入 WAV 格式的音频文件。... 涵盖的其他要点包括在保存为音频文件之前将音频信号缩放到最大绝对值 1,以及如何创建双通道(立体声)音频文件。 从 .wav 文件中检索音频信号
  • 如何解决电脑桌面文件无法删除问题电脑是现在最常用的工具之一,有些用户遇到了桌面文件无法删除问题,想知道如何解决,接下来小编就给大家介绍一下具体的操作步骤。具体如下:1. 首先第一步鼠标右键单击桌面,在弹...
  • 问题描述:一般网站,对于用户上传的图片、视频、声音等特殊格式的数据是以本地文件的形式存储,然后把相应URL路径存放在数据库里呢;还是,将数据直接写到数据库里存放?答:多数网站,基本上采用的是第一种方式,...
  • 常见的文件扩展名

    万次阅读 多人点赞 2019-03-01 09:45:58
    常见的文件扩展名 文本 java:java代码文件 xml:具有结构性的标记电子文件 ...asp:MicroSoft公司开发的创建动态交互式网页服务器端脚本 project:eclipse的工程信息文件 classpath:eclipse项目编译环境的所有...
  • Unity 播放声音

    千次阅读 2021-05-08 10:35:57
    Unity中支持的音频格式 格式 用途 AIFF ... 适用于较短的音乐文件可用作游戏打斗音效 ... 适用于较短的音乐文件可用作游戏打斗音效 ...Unity中播放声音简单案例 1.GameObject ..
  • ES文件浏览器找不到电脑怎么办?ES文件浏览器是一款可以让手机访问电脑共享文件夹的手机软件,但是有些用户在用的时候发现ES文件浏览器搜索不到电脑,这怎么解决呢?下面请看详细的方法.[ES文件浏览器怎么连接电脑_访问...
  • 常见的文件格式有哪些

    千次阅读 2021-01-09 08:54:49
    AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式 ANI:Windows系统中的动画光标 APK:AndroidPackage /Android(安卓)安装包,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件...
  • C语言文件的定义,如何对文件进行操作,文件指针,如何定义指向文件的指针,通过文件指针对文件进行操作,文件应用举例,二进制文件相关操作,文件定位
  • ue4 创建简单的声音系统

    千次阅读 2019-07-03 10:04:34
    首先我们创建声音类(soundclass)命名为MainSoundClass, 这个是我们来控制所有的声音文件的。通常我们把它作为项目的DefalutSoundClass。设置在项目设置的Audio页签中。这样当我们导入音效文件时,会自动把文件...
  • 只需要5秒就能克隆出你的声音

    千次阅读 多人点赞 2021-08-28 09:11:56
    只需要一段5秒钟的录音,就能将其他的文字转换成你的声音。Real-Time-Voice-Cloning该项目目前在git上以及接近30k的星,作者将克隆后的效果已经上传到youtube演示视频。遗憾的是这个项目只支持英文。 最近从这个项目...
  • Microsoft 剪辑管理器: 使用 Microsoft 剪辑管理器导入和组织照片、剪贴画、声音和动 画文件。 Office Anytime Upgrade: Microsoft Office Anytime Upgrade Tool VBA 工程的数字证书: 此程序创建可份自我签署的数字...
  • exo是什么文件

    千次阅读 2020-12-19 04:27:46
    匿名用户1级2014-07-21 回答扩展名是文件名的一部分,每个文件的名中最后一个小点后边的部分(文件可以无扩展名)就是文件的扩展名,通常文件扩展名由3或4个不同的字符组成,可以是数字、字母、符号.你可以把文件的扩展...
  • Oracle知识点(一)--创建

    千次阅读 2021-09-04 12:29:35
    一、创建一张表 创表语句: create table 表名( 列名1 数据类型[长度] [列名2 数据类型[长度] ] [列名3 数据类型[长度] ] … ) 例:创建一个学生表Stu,要求有id、name、sex、age、class列。sex默认“男”。 create ...
  • print("Discovered the following .wav files:", sound_file_paths) #打印声音文件路径 files = [load_sound_file_into_memory(path) for path in sound_file_paths] #文件加载到内存 寻找usb设备 print("Files...
  • 在java应用程序中加入声音

    千次阅读 2012-03-12 23:54:42
    先说一下在 applet 中播放声音文件的一般步骤:   创建一个 AudioClip 对象   装入 .au 或者wav的声音文件(或者后面所说的支持的类型)到 AudioClip 对象   下面是相应的代码:   import java.applet.*...
  • 当直接双击进入运行的时候会报以下的错误…这个只是权限的问题,打开VMwarede 的时候必须得右键以管理员的身份运行,但是每次以管理员的身份运行比较麻烦,以下是解决方式: 方法一:在程序本身设置 ...
  • Vue播放音频声音

    千次阅读 2021-03-03 14:01:52
    } 设置播放的src方式: this.audio.src = url 播放暂停的方法: await this.audio.play() // 播放 this.audio.pause() // 暂停 // 因为加载音频文件是需要时间的,所以play方法返回的上一个promise,我们要等待他加载...
  • Minecraft 文件结构介绍

    千次阅读 2021-08-11 03:44:33
    本教程是基于网上资料制作,面向普通玩家,欢迎大家补充,本教程将教会你:一、根目录下大部分文件夹内文件的作用二、常见 DIY 的部分在国内大部分玩家都是使用游戏文件+盗版启动器的方式进行游戏,因此大家一般都...
  • 6.5 创建一个播放声音的方法 在notePressed(_sender:UIButton)方法的下面创建一个新的方法: @IBAction func notePressed(_ sender: UIButton) { playSound() } func playSound() { let soundURL = Bundle.main....
  • Android录制声音文件(音频),并播放

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 95,534
精华内容 38,213
关键字:

创建声音文件