网络收音机1--音频编程.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络收音机1--音频编程

一、网络收音机 基于linux的网络收音机的设计与实现 网络收音机 豆瓣电台图片 人人电台图片 网络收音机—从用户的角度 网络收音机特性介绍 拥有自己的账户 用户可以指定收听某一类音乐 70、80、90… 华语、欧美、粤语、日韩… 民谣、轻音乐、电子、说唱、电影原声… 标出喜欢的音乐 用户无法选择具体的一首音乐,但可以标出哪些歌是自己喜欢的,服务器根据用户的喜好情况,有选择的向用户推荐歌曲。 网络收音机—开发者的角度 需要的技术知识 音频播放 alsa音频播放(alsa) MP3解码(mad) 网络下载 下载播放列表(xml) 下载MP3文件(curl) 多线程/多进程 边下载边播放(pthread) QT编程 图形界面(qt) Linux下的音频播放 ALSA音频系统 本章简介 本章着重阐述了Linux下音频设备的编程方法。 音频信号的数字化和相关概念 Linux音频驱动的相关知识 Linux下音频设备编程的方法 Linux音频编程实例 声音如何转换成数字信号 音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,所以由自然音源得到的音频信号必须经过一定的转换,成为数字音频信号之后,才能被计算机进一步处理。这一过程被称为模/数转换(A/D)。 采样量化 A/D转换器每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模拟声波在某一时刻的状态,通常称之为样本(sample),每一秒中所采样的数目称为采样频率,通过将一连串连续的样本连接起来,就可以在计算机中描述一段声音了。 采样量化 对于采样过程中的每一个样本来说,数字音频系统会分配一定存储位来记录声波的振幅,一般称之为采样分辩率或者采样精度,采样精度越高,声音还原时就会越细腻。 音频编程 对于Linux下进行音频编程的程序员来说,最重要的是理解两个关键步骤: 采样:每隔一段时间就读一次声音信号的幅度 量化:将采样得到的声音信号幅度转换为数字 从本质上讲,采样是将时间数字化,量化是将幅度数字化。 音频技术指标 采样和量化的技术指标 采样频率 采样位数 声道数 采样频率 采样频率 采样频率是指将模拟声音波形进行数字化时,每秒钟抽取声波幅度样本的次数。 采样理论: 如果对某一模拟信号进行采样,则采样后可还原的最高信号频率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号。 采样频率 采样频率 采样频率 采样频率 正常人的听觉频率范围大约在20Hz~20000Hz,根据采样理论,采样频率在40kHz左右就可以保证声音不失真。 常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等。如果采用更高的采样频率,就可以达到DVD的音质。 人说话声音频率一般在300-700Hz 采样位数 采样位数: 对模拟音频信号的幅度进行数字化,它决定了模拟信号数字化以后的动态范围,常用的有8位、12位和16位。 采样位数,对音频的描述就越细,数字化后的音频信号就越可能接近原始信号,但所需要的存储空间也就越大。 采样位数 采样位数: 声道数 声道数: 反应音频数字化质量的一个重要因素,它有单声道和双声道之分。 双声道又称立体声,在硬件中有两条线路,音质和音色都要优于单声道,但数字化后占据的存储空间的大小要比单声道多出一倍。 Linux音频系统 -- OSS OSS (Open Sound System) 最早为Unix系统提供统一的数字音频架构 为绝大多数声卡提供统一的编程接口 Linux内核中的代码为开源,其余部分以二进制形式提供 由于其代码不支持开源协议,最终Linux选择ALSA代替OSS作为其音频系统。 Linux音频系统 -- ALSA ALSA(Advanced Linux Sound Architecture)高级声音架构的简称。 全部开源 支持几乎所有的音频硬件设备 模块化声卡驱动 支持多核和多线程 提供alsa-lib 支持OSS API 在Linux2.6内核中ALSA成为默认的音频系统,用来代替原来内核中的OSS系统 ALSA的历史 ALSA项目源于Jaroslav Kysela缩写的声卡驱动。 1998年之前,该项目一直为Gravis UltraSound(声卡)开发驱动, 2002年被引入Linux内核版本2.5(测试版) 从Linux2.6内核开始ALSA成为Linux内核中默认的标准音频驱动程序集,OSS被标记为废弃。 ALSA主页: /main/index.php/Main_Page ALSA体系结构 ALSA是一个先进的Linux声音体系。它包括内

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档