WAV文件创建

python的语音识别 首先基于python36 安装模块 pip install pyttsx3 pip install PocketSphinx pip install SpeechRecognition pip install comtypes 利用txt文件创建语音文件 from comtypes.client import CreateObject engine=CreateObject("SAPI.Sp... 阅读详情

typedef struct WAVE
{
 short wFormatTag; //编码格式,包括WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM等
 short nChannels; //声道数,单声道为1,双声道为2
 int nSamplesPerSec; //采样频率
 int nAvgBytesPerSec; //每秒的数据量
 short nBlockAlign; //块对齐
 short wBitsPerSample; //WAVE文件的采样大小
 short cbSize;
} WAVEFORMATEX, *PWAVEFORMATEX;

 

int m_WaveHeaderSize = 38;
 int m_WaveFormatSize = 18;
 int m_AudioDataSize =1024*1024*4;
 int m_WrittenBytes = 0;
 WAVEFORMATEX m_WaveFormatEx;
 m_WaveFormatEx.wFormatTag=1 ;
 m_WaveFormatEx.nSamplesPerSec=48000;
 m_WaveFormatEx.wBitsPerSample=16;
 m_WaveFormatEx.nChannels=2;
 m_WaveFormatEx.cbSize=0;
 m_WaveFormatEx.nBlockAlign=m_WaveFormatEx.nChannels*(m_WaveFormatEx.wBitsPerSample/8);
 m_WaveFormatEx.nAvgBytesPerSec=m_WaveFormatEx.nSamplesPerSec*m_WaveFormatEx.nBlockAlign;

 //
 FILE *m_file;
 string m_csFileName= "C://test.wav";
 m_file = fopen(m_csFileName.c_str(), "wb");
 //
 fwrite("RIFF", 1, 4, m_file);
 unsigned int Sec=(m_AudioDataSize + m_WaveHeaderSize);
 fwrite(&Sec, 1, sizeof(Sec), m_file);
 fwrite("WAVE", 1, 4, m_file);
 fwrite("fmt ", 1, 4, m_file);
 fwrite(&m_WaveFormatSize, 1, sizeof(m_WaveFormatSize), m_file);
 fwrite(&m_WaveFormatEx.wFormatTag, 1, sizeof(m_WaveFormatEx.wFormatTag), m_file);
 fwrite(&m_WaveFormatEx.nChannels, 1, sizeof(m_WaveFormatEx.nChannels), m_file);
 fwrite(&m_WaveFormatEx.nSamplesPerSec, 1, sizeof(m_WaveFormatEx.nSamplesPerSec), m_file);
 fwrite(&m_WaveFormatEx.nAvgBytesPerSec, 1, sizeof(m_WaveFormatEx.nAvgBytesPerSec), m_file);
 fwrite(&m_WaveFormatEx.nBlockAlign, 1, sizeof(m_WaveFormatEx.nBlockAlign), m_file);
 fwrite(&m_WaveFormatEx.wBitsPerSample, 1, sizeof(m_WaveFormatEx.wBitsPerSample), m_file);
 fwrite(&m_WaveFormatEx.cbSize, 1, sizeof(m_WaveFormatEx.cbSize), m_file);
 fwrite("data", 1, 4, m_file);
 fwrite(&m_AudioDataSize, 1, sizeof(m_AudioDataSize), m_file);

 char *Data = new char[1024*1024*4];
 fwrite(Data, 1, 1024*1024*4, m_file);
 fclose(m_file);

 delete []Data;

使用C++编写WAV音频文件 WAV文件是一种无损音频编码格式,广泛用于音乐、语音和其他音频数据的存储和处理。通过设置WAV文件头和填充音频数据,我们可以创建一个包含特定音频样本的WAV文件。然后,我们通过设置结构体的成员变量来填充WAV文件头的信息,包括文件格式、采样率、声道数和采样位数等。例如,如果你有一个双声道的音频数据,每个采样位数为16位,采样率为44100Hz,你可以使用以下代码填充。它将创建一个名为"output.wav"的WAV音频文件,并将音频数据写入文件中。类创建一个二进制文件,并将WAV文件头和音频数据写入文件。 阅读详情

相关推荐

wav文件的创建

WAV文件

C代码创建多通道WAV音频文件

wav文件生成,音频算法调试

aron566博客 793

wav音频测试文件,可以自行下载

wav音频测试文件,可以自行下载

如何写WAV格式文件头(笔记)

解读Wave文件头 2010-08-02 20:34 转自:http://blog.csdn.net/caomiao2006/archive/2009/11/20/4839631.aspx 要用Java写个在线画Wave图形的程序,就研究了一下Wave文件头结构。 解读Wave,文件头解释,可以用16位编辑器UltraEdit打开,然后可以观察文件的结构。 我发现对应C语言里面的字WORD(32位),16进制文件对应2个字节(Byte),而DWORD(64位),对应4个字节。 然后顺便普及一下16

seven407的专栏 3693

用友U8其中一个账套提示演示期已到期-修复方法

【事件始末】 一朋友求助,反馈使用的用友U8,很多年了! 突然发现其中账套2021年的一个账套打不开,提示演示期限已到期! 但是其他账套完全正常,可以打开,没有任何问题。 不管是还原老旧备份,还是重装软件问题依旧,无法自己解决。 客户查询报表结算账期,情况比较紧急,于是求助我们。 经过多次反复琢磨和烟酒,终于于晚上23点59分给弄了出来,也总是圆满解决问题了。 【问题分析】 该用户打的是 U82X免狗补丁,估计是该补丁文件设置了 最大有效期,补丁到期了导致的。 也有可能是程序...

u010431289的博客 2万+

保姆级教程:在S32DS 3.4上安装S32K3xx RTD 4.4驱动包(附常见安装失败排查)

本文提供在S32DS 3.4上安装S32K3xx RTD 4.4驱动包的详细教程,涵盖环境准备、分步安装指南及常见问题排查。特别针对NXP S32K3系列MCU开发者,解决网络问题、路径配置等安装难点,并分享进阶配置技巧和最佳实践,助力高效开发。

weixin_42696271的博客 288

构建PCM格式WAV声音文件

本文通过简单代码,生成单色PCM格式WAV音频文件,介绍了PCM格式WAV音频文件的格式,可以基于此构建模拟声音文件。

选择的专栏 1024

单片机多级菜单的简单实现

单片机多级菜单的简单实现 多级菜单的思路 最近想把stm32上的oled显示屏做的好看一些,于是动手写了写一个多级菜单,思路很简单,每个页面用单独的函数封装好,每个功能也是用单独的函数进行封装,用了3个按键,两个切换键,一个确定键。 首先来看看用啥判断页面的(这偷个懒,希望没人打我) //页面标志位 uint8_t s1 = 0; //主页面功能号 uint8_t s2 = 0; //主次页面判断标志位 uint16_t s3 = 1; //次页面功能号 主页面的显示函数,这是个很枯燥的一

qq_43940175的博客 7605

Linux下用python给某个目录下的wav文件创建相应的文本文件(标注文件)

1,在test目录下有多个wav文件,需要给每个wav文件创建相应的标注文件,比如有个1.wav,创建后的标注文件名为1.wav.trn,假设每个文件的内容都是"Hello,world,\n我喜欢你"。 代码如下: #coding:utf-8 #因为代码中有中文,需要加上这句代码 #!/usr/bin/python #filename:traversefileInPython im

yychenxie21的专栏 1704

信创迁移实战:在银河麒麟V10-SP1上为Milvus离线部署Docker(附SP1专属避坑指南)

本文详细介绍了在银河麒麟V10-SP1 x86_64环境下离线部署Docker的全流程,特别针对该版本特有的自定义目录安装失败问题提供深度分析和解决方案。通过实战验证的步骤和避坑指南,帮助用户在信创项目中顺利完成Milvus等应用的容器化部署。

weixin_30687051的博客 532

从《新程序员》系列看程序员职业发展趋势与成长路径

在信息技术日新月异的当下,软件开发行业蓬勃发展,程序员作为行业的核心力量,其成长与发展路径备受瞩目。《新程序员》系列杂志应运而生,以其前瞻性的视角、丰富多元的内容,为广大程序员尤其是新程序员提供了洞察行业趋势、学习前沿技术、汲取前辈经验的宝贵窗口。该系列杂志由优快云精心打造,自推出以来,便在开发者群体中引发了强烈反响。《新程序员》系列内容涵盖了从基础技术知识的深入解读,到行业前沿趋势的精准预测;从优秀开发者的成长历程分享,到各大企业数字化转型的实践案例剖析等多个维度。

AllenLV的博客 2259

Unity3D中录制和输出wav文件

近期在做视频录制方面的事情,看了下音频的录制和输出。主要参考官方的FrameCapturer: https://github.com/unity3d-jp/FrameCapturer wav文件结构较为简单,文件头格式网上有很多,数据这块可以直接采用未压缩的数据。 这里需要注意一点,C#在用StreamWriter写入时,并不会填充所有字节。 例如int型数据占4个字节,而...

dongfushu7972的博客 462

最佳RANSAC算法拟合矩形的实现(基于PCL库)

最佳RANSAC算法是一种常用的参数估计方法,用于从数据集中拟合出最佳的模型。在计算机视觉和图像处理领域,最佳RANSAC算法常用于拟合几何形状,如矩形。本文将详细介绍如何使用点云库(PCL)中的最佳RANSAC算法来拟合矩形,并提供相应的源代码。

JbPatch的博客 1541

java实现wav文件转成mp3文件

由于项目中需要把wav文件转成mp3,找了很多都没找到,有个Lame,很多人用这个,但是我觉得不太好用,在lunix环境下调用exec命令可能会出问题。 还有一个问题,Lame生成了mp3文件后,貌似会挂起这个文件,当我用code去处理这个mp3文件的时候,报错。。。 现在把我用到的mp32wav 和 wav2mp3 的两个源码放上来,有兴趣的同学,可以共同研究。 wav2mp3的使...

JAVA学习积累 1319

微信小程序 - 获取当前日期时间(函数封装)

效果图 前言 摘自微信小程序demo程序中utils.js方法。 普通newDate()出来的日期时间,并不是我们想要的格式,所以要进行格式整理。 解决方案 打开utils.js文件(随意),复制以下代码: /** *获取当前时间 *@description自定义日期分钟秒数 *@param{Object}date-newData()对象 *@returnString */ functionformatTime(date){ //年月日

🏆 前端领域优质创作者 2843

​​光流结合深度学习实现物体运动方向判断

光流计算:提取每一帧视频中像素的运动信息,生成光流图。光流特征提取:通过特定的预处理,将光流图转换为深度学习模型可用的输入格式。深度学习模型设计:构建一个卷积神经网络(CNN)或其他适合的深度学习架构,利用光流特征进行运动方向分类。模型训练与推理:对网络进行训练并使用训练好的模型判断运动方向。光流与深度学习结合的运动方向判断技术在多个领域具有广泛的应用前景。通过光流提取像素级动态信息,并利用深度学习模型学习高层次特征,可以实现高精度的运动检测与方向判断。

matlab_python22的博客 321

python tts 保存wav_无法播放由IBM Watson的TTS(文本到语音转换)生成的WAV文件

目前正在使用IBM Watson的GitHub上的示例脚本:当我运行这个脚本时,它可以完美地创建WAV文件。但是,当我尝试在脚本中回放时,它只是运行而从不播放。我尝试使用PyAudio、Os、Subprocess和其他第三方库来播放该文件,但是没有任何效果。在尝试在脚本中播放文件之前,是否需要先对文件执行某些操作?我假设它和它用二进制编写有关,这正是脚本所要求的,但是我对编程还是太陌生了,不知道如...

weixin_42301769的博客 280

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# Win Form播放和生成wav文件

C# Win Form播放wav音乐 嵌入Win Media Player https://blog.csdn.net/lbc2100/article/details/80923975 4.使用axWindowsMediaPlayer的COM组件来播放 别有用 获取信息 https://social.msdn.microsoft.com/Forums/windows/en-US/8ae6290e-...

JXISH001的博客 1447

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

解决 FileNotFoundError: [WinError 2] 系统找不到指定的文件

编程过程中我遇到这种问题: Traceback (most recent call last): File "C:\Users\asus\Desktop\High and Low Pass Filtering.py", line 26, in <module> wav = AudioSegment.from_wav("1.wav") File "D:\soft2\pyt...

土豆同学的博客 4万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

存储音频--

无

night_Ragnarok的博客 235

python mp3转wav

python mp3转wav from pydub import AudioSegment def mp3_to_wav(mp3_path, wav_path):     song = AudioSegment.from_mp3(mp3_path)     song.export(wav_path, format="wav") if __name__ == '__main__':     mp3_to_wav('aud

weixin_44493841的博客 6223

初学立创黄山派esp32-s3录音例程es7210

参数校验 → 计算音频参数 → 生成WAV头 → 打开文件 → 写入WAV头 → 启用I2S → 循环【读取I2S音频 → 写入SD卡 → 累计长度】 → 达到录制时长退出循环 → 禁用I2S → 关闭文件 → 返回状态。

2501_92263832的博客 542

接口调用-【4】讯飞离线语音合成Windows/Linux

1、离线语音合成调用主函数(离线语音合成调用属于简单的,无回调函数) package com.iflytek; import com.iflytek.util.Step2_tts_thread; import com.iflytek.util.Step3_audioFormat; import java.util.Scanner; import javax.sound.sampled.*; /** * 请注意!!! * 1.首选到控制台https://console.xfyun.cn/servic

p6448777的博客 2282

在WINCE中的一些VB.NET2005通用方法

1.将全角数字转换成半角数字2.字符串长度计算(针对全半角混合字符串)3.动态给控件追加事件(使用递归调用实现全部控件的遍历)4.时间格式(11:12)控件的自动输入实现5.动态控制光标在TEXTBOX控件中的移动6.使用API函数播放WAV声音.7.使用API函数实现文件的创建,移动,删除.1.将全角数字转换成半角数字Public Function ZenkakuNu

652

【K70例程】022I2S音频驱动_SGTL5000_SDHC_MQX_K70EKT7

http://www.mcuzone.com/bbs/read.php?tid=10696 使用J-LinkV8 MDKKeil版本4.71 调试串口波特率:115200 基于MDKK70-EK_T70硬件平台 实验现象: 串口输出: Setting up time......................[OK] Initializing audio cod

865
上一篇: 什么是实模式、保护模式和虚拟8086方式
下一篇: 程序员需要知道的97件事
tomorrowsprogress
博客等级 码龄20年 16粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值