当前位置:首页 » 编程软件 » 声音编程

声音编程

发布时间: 2023-05-03 05:09:30

Ⅰ 如何用Pascal语言进行声音编程

Turbo pascal 声音编程

一、使用Pascal进行声音操作前的准备

首先需要说明的是我们所说的Pascal声音操作,并不是指实现Pascal对于声卡进行操作,而是利用Pascal对计算机的PC喇叭操作,使它发出声音。

在Turbo Pascal中有一个叫做CRT单元的东西,CRT单元实现了一系列强大的可以充分地控制你计算机的功能CRT单元提供了控制显示模式、扩展键盘代码、显示颜色、窗体和声音的功能。

若是要在Turbo Pascal中实现声音操作,就必须要调用CRT单元。那么怎么样来调用CRT单元呢?现在介绍一下单元调用语句:USES

USES的语法:
USES 单元表识符,……,单元表识符;
说明:
扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件。

二、Pascal声音操作的全部——三个过程

其实,Pascal的声音操作是十分简单的,一共可以使用的过程也只有3个,由此可见,你可以用很少的时间使你的PC喇叭发出你所希望的长度、你所希望的频率的声音

(1)SOUND过程

调用SOUND的方法: SOUND(HZ);

说明:在调用SOUND的时候,它的参数HZ必须是WORD,也就是说变量HZ必须在0~65535这个范围中,变量HZ就是使PC喇叭迟碧发出等于HZ变量数值的频率的声音,由此可见人耳可以听见的范围远远小于这个范围。

(2)DELAY过程

调用DELAY的方法: DELAY(TIME);
说明:当你在调用了SOUND过程之后,必须指定它发出变量HZ所指定的频率的声音的时间长度,DELAY就是用来指定这个长度的过程,变量TIME必须是大于等于零的整数,并且当TIME=1000时,它所延迟的时间是1秒,也就是说TIME的单位是千分之秒。

(3)NOSOUND过程

调用DELAY的方法: NOSOUND;
说明:NOSOUND是一个无参过程,它的作用从过程名上就可以看出——用来使PC喇叭停止发声,在调用SOUND之后,最好是要调用NOSOUND使PC喇叭停止发声。

例:用于上过程编写一个警报程序:
PROGRAM Alert;
USES Crt;
VAR
Hz : Word;
Count : Word;
BEGIN
REPEAT
Count:=Count+1;
Hz := 262;
WHILE Hz <= 524 DO
BEGIN
Sound(Hz);
Delay(2);
Hz := Hz + 1;
END;
UNTIL Count = 10;
Nosound;
END.

注意,在不同的机器上发出的声音码大举有所差异。这是因为计算机主频不同。还有,在试验这个程序,或者说试验这种发声程序之前,最好先准备一个调用NOSOUND使PC喇叭仿培停止发声的简单程序,以免异常中断,使喇叭响个不停。

========================= ========================

可以使用CLRSCR函数在需要处清屏
不过如果要使用 CLRSCR(清屏过程,在 DOS单元中)的话,必须在程序头部加上: USES DOS;

Ⅱ 怎样编程能让音箱发出指定频率的声音运行时频率可以任意改变(100-1000之间) 用VB、C、C++、C#都可以

楼上正解!
----------------------------------
VB版的
Public Declare Function APIBeep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, _
ByVal dwDuration As Long) As Long
'控制计算机发出一个声音 dwFreq(声高) dwDuration(声长)
private sub main()
call apibeep(250,200)'这样扬声器就发出你可以控制的声音了,如果没有安装声卡 则从主板小喇叭上发出
end sub

Ⅲ 如何针对声卡编程发出特定频率的声音

蜂鸣器编程的话,有个API函数,VB中的声明为
Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

调用方法是Beep 声音频率,持续时间(毫秒为单位)
比如 beep 2000,1000

如果是声卡编程的话,也有相应的API函数,比如你可以用DirectSound(也就是DirectX的一部分),功能比较强大,也很专业。事实上,如果你使用的是专业级的声卡和音响设备,它可以在一定范围内回放出超出人耳听觉范围的声音。当然也可以用简单一点的API,以下是几个需要的函数:
Private Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long
Private Declare Function midiOutGetNumDevs Lib "winmm" () As Integer
Private Declare Function MIDIOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Private Declare Function midiOutClose Lib "winmm.dll" (ByVal hMidiOut As Long) As Long
Private Declare Function midiOutShortMsg Lib "winmm.dll" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long
Private Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long

Private Const MAXERRORLENGTH = 128 ' max error text length (including NULL)

Private Const MIDIMAPPER = (-1)
Private Const MIDI_MAPPER = (-1)
'MIDIOUTCAPS结构描述了Musical Instrument Digital Interface(MIDI)输入设备的性能
Type MIDIOUTCAPS
wMid As Integer
wPid As Integer ' 产品 ID
vDriverVersion As Long ' 设备版本
szPname As String * 32 ' 设备 name
wTechnology As Integer ' 设备类型
wVoices As Integer
wNotes As Integer
wChannelMask As Integer
dwSupport As Long
End Type

Public Sub note_on(ch As Integer, ByVal kk As Integer, v As Integer)
' 发音主函数。参数分别为通道编号,音调,速度
Call midi_outshort(&H90 + ch, kk, v)
End Sub

Sub midi_outshort(b1 As Integer, b2 As Integer, b3 As Integer)
Dim midi_error As Integer

midi_error = midiOutShortMsg(hMidi, b3 * &H10000 + b2 * &H100 + b1)
If Not midi_error = 0 Then
Call midi_outerr(midi_error)
End If
End Sub

Sub midi_outerr(ByVal midi_error As Integer)
Dim s As String
Dim x As Integer

s = Space(MAXERRORLENGTH)
x = midiOutGetErrorText(midi_error, s, MAXERRORLENGTH)
MsgBox s

End Sub

Ⅳ 少儿编程之Scratch中初识声音模块

声音素材可以选择官方提供的声音,也可以上传声音文件或录制声音。

Scratch提供的声音类积木悉灶包括:播放声音、调整音调(或左右平衡)、调整音量,大家去试试吧。

音乐分为两种明陆岁类型:激睁打击类和演奏类。

Ⅳ C语言编程声音程序不出声音

不能吧~ 我这个程型早滑序在我这里是可以发声的...
汗~不过频率太低的话我也发睁键不出来

时间太卜腊短~

#include <stdio.h>
#include <dos.h>
main()
{
int i;
sound(100);
for(i=0;i<100;i++)
delay(1000);

nosound();
}

感觉很奇怪,头文件上写的sound(Hz),频率低的话我这也不能发声~~
哦~

Ⅵ 如何使用OpenSL ES在c4droid中进行声音编程

使用opensl es 的前提条件是在源代码中:
#include <SLES/OpenSLES.h>, 包含 opensl es的头文件
在gcc中:
-lOpenSLES 链接 opensl es的库文件
大休步骤如下:
1.创建声音引擎
2.创建声音播放器
3.设置播放缓冲
opensl es 主要操作的是 接口(interface),大体来说有如下几个接口:
SLObjectItf : 对象接口,
SLEngineItf :引擎接口
SLPlayItf:播放接口
SLBufferQueueItf :缓冲队列接口
SLEffectSendItf:音效发送接口
SLMuteSoloItf : 声道关闭 /单声道接口
SLVolumeItf : 声量接口

除了 slCreateEngine 这一条函数是用来创建声音引擎对象接口以外,其它的所有操作都是通过接口的成员函数完成的,现在我们来研究如何初始化声音引擎
初始化声音引擎需要3个接口,我们要将它们声明为全局变量:
SLObjectItf _aud;/* 声音引擎的对象接口 */
SLEngineItf _aud_eng;/* 声音引擎 */
SLObjectItf _aud_mix;/* 混音器对象接口 */

首先我们创建声音引擎的对象接口 :
slCreateEngine(&_aud, 0, NULL, 0, NULL, NULL);
创建之后的接口并不能立即使用,我们首先要通过接口的子函数实现(Realize)它:
(*_aud)->Realize(_aud, SL_BOOLEAN_FALSE);/* 通过_aud的Realize子函数实现声音引擎的对象接口 */
实现之后,我们从声音引擎的对象中抓取声音引擎,在这里我们通过接口的子函数抓取接口 (GetInterface),抓取对像是 _aud, 抓取类型是引擎,抓取后存放的内存位置是我们先前声明的引擎接口_aud_eng的指针位置。指令如下:
(*_aud)->GetInterface(_aud, SL_IID_ENGINE, &_aud_eng);
这样声音引擎就初始化了
第三步我们要做的是从声音引擎中创建 "输出混音器" 对象,这样我们才可以将声音播放出来。
注意,同 声音引擎的对象一样, 由于 "输出混音器" 是对象,我们必须创建后在实现(Realize)它。
由于"输出混音器"创建的同时需要两个音效参数,所以我们先准备好这两个参数:第一个参数类型是声音接口编号(SLInterfaceID),是一个数组,我们可以将其看成一个音效配置列表,在其中放置不同的音效编号。第二个参数是一个逻辑数组:是否强制实现声音接口编号中对应音效,如果某个音效的逻辑为真(SL_BOOLEAN_TRUE),则在无法实现该音效时视为"输出混音器"创建失败,否则将忽略该音效。因为安卓的声硬件对音效的支持不同,所以最好不要强制实现,所以我们在第二个数组中全部填写SL_BOOLEAN_FALSE 。

现在我们开始创建"输出混音器",环境回响(SL_IID_ENVIRONMENTALREVERB )是比较常见的音效,我们将非强制性的使用该音效。

SLInterfaceID effect[1] = {SL_IID_ENVIRONMENTALREVERB}; /*环境回响音效 */
SLboolean effect_bool[1] = {SL_BOOLEAN_FALSE}; /* 回响音效强制实现逻辑 */
(*_aud_eng)->CreateOutputMix(_aud_eng, &_aud_mix, 1, effect, effect_bool);/* 从声音引擎中创建“输出混音器” */
(*_aud_mix)->Realize(_aud_mix, SL_BOOLEAN_FALSE); /* 实现刚创建的“输出混音器” */
样一来,所有的初始化工作就全部完成了。我们获得如下完整代码:

SLObjectItf _aud;/* 声音引擎对象 */
SLEngineItf _aud_eng;/* 声音引擎 */
SLObjectItf _aud_mix;/* 输出混音器对象 */

/* audio_init: 初始化opensl es */
int audio_init ()
{
SLInterfaceID effect[1] = {SL_IID_ENVIRONMENTALREVERB}; /* 音效 */
SLboolean effect_bool[1] = {SL_BOOLEAN_FALSE}; /*音效强制实现逻辑 */

slCreateEngine(&_aud, 0, NULL, 0, NULL, NULL);/* 创建声音引擎对象 */
(*_aud)->Realize(_aud, SL_BOOLEAN_FALSE);/* 实现声音引擎对象 */
(*_aud)->GetInterface(_aud, SL_IID_ENGINE, &_aud_eng);/* 从声音引擎对象中抓取声音引擎 */
(*_aud_eng)->CreateOutputMix(_aud_eng, &_aud_mix, 1, effect, effect_bool);/* 通过声音引擎创建输出混音器对象,并且非强制性的开启环境混响效果 */
(*_aud_mix)->Realize(_aud_mix, SL_BOOLEAN_FALSE);/* 实现混音器对象 */
}
初始化引擎之后, 我们还要创建一个播放器对象,就可以在播放器中输出声音了
播放器对象和输出混音器一样,是对象,创建后需要进行实现:
SLObjectItf _aud_plyobj; /*播放器对象 */
(*_aud_eng)->CreateAudioPlayer(_aud_eng, &_aud_plyobj, &sndsrc, &sndsnk, 3, ids, req);
/* 这是创建声音播放器对象aud_plyobj的函数 */
前两个参数分别把 声音引擎 和 播放器引擎的指针位置填上就可以了
我们真正需要填写的是后面4个参数 :
sndsrc: 声音数据源
sndsnk:声音输出池(data sink),也就是声音输出设备
3:功能清单数目,我们要让播放器支持3种功能
ids: 功能清单,我们要让播放器支持的功能
req:功能强制实现逻辑

Ⅶ C,C++关于声音方面的编程

去找李开复吧,语音识别领域专家。

Ⅷ 在编程speak功能中怎么变声音

在编程 speak 功能中变声音可以使用音频处理库或语音合成引擎的 API 来实现。具体实现方法因使用的库或引擎不同而异,一般来说需要通过 API 调用相关函数或接口,设置变声参数,然后将文本转镇带换成音频输出。以下是一些常用的音频处理库和语音合成引擎:

  • PyDub:一个基于 Python 的音频处理库,支持音频剪辑、合并、混音、变速、变声等功能。

  • FFmpeg:一个跨平台的开源音视频处理工具,支持音频剪辑、合并、格式转换、变速、变声等功能。

  • Microsoft Cognitive Services:微软提供的一系御芹芦列 AI 服务,包括语音转文本、文本转语音、情感分析等功能,可以通过 API 调用实现语音合成和变声。

  • Google Cloud Text-to-Speech:Google 提供的云端语音合成服务,可以通过 API 调用实现文本转语音和变声功能。

  • 需要注意的是,音频处理和语音合成的质量和效果受多种因素影响,包括采样率、位深度、声道数、语音合成引擎的算法等首派。因此在选择库或引擎时需要根据具体应用场景和需求进行综合考虑和评估。

Ⅸ 图形化编程添加声音和导入声音有什么不同

添加声音是在声音编程区下方找到声音素销渗卜材库,在本地声音素材库里添加声音。
导入亏穗声音是要先创建一个新角色,然后点击角色给角色导入声音。
Scratch是麻省理工学院的“终身幼儿园团队”在2007年发布的一种图形化编程工具,主要面对全球青少年开放,是图形化编程工具当中最广为人知的一种形式,所有人都可以喊局在软件中创作自己的程序。截至到2021年仍在更新。

Ⅹ 音频编程语言列表

List of audio programming languages

维基网络地址:

https://en.wikipedia.org/wiki/List_of_audio_programming_languages

Jump to navigationJump to search

This is a list of notable programming languages optimized for sound proction, algorithmic composition, and sound synthesis.

ABC notation, a language for notating music using the ASCII character set

ChucK, strongly timed, concurrent, and on-the-fly audio programming language

Real-time Cmix, a MUSIC-N synthesis language somewhat similar to Csound

Common Lisp Music (CLM), a music synthesis and signal processing package in the Music V family

Csound, a MUSIC-N synthesis language released under the LGPL with many available unit generators

Extempore, a live-coding environment which borrows a core foundation from the Impromptu environment

FAUST, Functional Audio Stream, a functional compiled language for efficient real-time audio signal processing

Hierarchical Music Specification Language (HMSL), optimized more for music than synthesis, developed in the 1980s in Forth

Impromptu, a Scheme language environment for Mac OS X capable of sound and video synthesis, algorithmic composition, and 2D and 3D graphics programming

JFugue, a Java and JVM library for programming music that outputs to MIDI and has the ability to convert to formats including ABC Notation, Lilypond, and MusicXML

jMusic

JSyn

Kyma (sound design language)

Max/MSP, a proprietary, molar visual programming language aimed at sound synthesis for music

Music Macro Language (MML), often used to proce chiptune music in Japan

MUSIC-N, includes versions I, II, III, IV, IV-B, IV-BF, V, 11, and 360

Nyquist

OpenMusic

Pure Data, a molar visual programming language for signal processing aimed at music creation

Reaktor

Sonic Pi

Structured Audio Orchestra Language (SAOL), part of the MPEG-4 Structured Audio standard

SuperCollider

SynthEdit

热点内容
oracle测试sql 发布:2025-07-08 03:16:54 浏览:973
php壁纸源码 发布:2025-07-08 03:04:26 浏览:320
android应用层 发布:2025-07-08 02:42:32 浏览:301
大唐存储销量 发布:2025-07-08 02:41:11 浏览:582
脚本怎么打开 发布:2025-07-08 02:41:06 浏览:822
贵州电信iPtv升级服务器地址 发布:2025-07-08 02:38:48 浏览:412
电脑怎么链接本地服务器 发布:2025-07-08 02:34:22 浏览:147
android调试webview 发布:2025-07-08 02:26:28 浏览:358
压缩袋鞋子 发布:2025-07-08 02:21:30 浏览:752
为什么安卓打吃鸡感觉有延迟 发布:2025-07-08 02:09:32 浏览:168