从网络上获取声音(转)

Java从网络上获取声音文件并播放声音的编程方法有两类,一是利用Java提供的play(URL)及play(URL,String) 直接播放网络上的声音文件,另一类是通过getAudioClip(URL)或getAudioClip(URL,String)先从网络上获取声音文件,并生成AudioClip 类型的对象,然后对该对象进行操作。
前者的使用格式是:

String Audur = "结点URL";
try {
play(new URL(Audur));
} catch(Exception e){}


String Audur = "结点URL";
try {
play(new URL(Audur),声音文件名);
} catch(Exception e){}
后者使用的格式是:
String Audur = "结点URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur));
}
catch(Exception e){
System.out.println("Can´t open the URL ");
}


String Audur = "结点URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur) ,声音文件名);
}
catch(Exception e){
System.out.println("Can´t open the URL ");
}

上面的四种格式都是将生成URL对象部分--“new URL(url)”
直接作为play或getAudioClip的参数;和前面处理图象的例子一样,
也可以先用“new URL(url)”获取一个URL对象, 再传给 play 或
getAudioClip。如对第一种play(URL)的格式, 也可采用如下的编
程格式:
URL Audur =null;
try {
Audur=new URL("结点URL ");
} catch(Exception e){
System.out.println("Can´t open the URL ");
}
play(Audur);
下面对前述四种从网络上获取并播放声音文件的格式各举一简单的例子,
以作编程时参考:
●程序4 格式一
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound1 extends Applet

{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
play(new URL(Audur));
} catch(Exception e){}
}
}

●程序5 格式二
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound2 extends Applet
{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/";
try {
play(new URL(Audur),"bark.au");
} catch(Exception e){}
}
}

●程序6 格式三
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound extends Applet{
AudioClip loopClip;
public void init() {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
loopClip = getAudioClip(new URL(Audur));
} catch(Exception e){}
}

public void paint(Graphics g){
loopClip.loop();
}
}

●程序7 格式四
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound0 extends Applet{
AudioClip loopClip;
URL auur;
public void init() {
try {
auur=new URL("http://www.shu.edu.cn/~xyx/java/Animator/audio/");
}
catch (MalformedURLException e) {
System.out.println("Can´t open the URL ");
}
loopClip = getAudioClip(auur,"bark.au");

}

public void paint(Graphics g){
loopClip.loop();
}
} [@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9650775/viewspace-924274/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9650775/viewspace-924274/

在Python中,你可以使用第三方库如`pyaudio`和`speech_recognition`来获取麦克风的声音并将其换成文字。以下是简单的步骤: 1. 安装所需库: - `pip install pyaudio` - 如果需要语音识别,安装`pip install SpeechRecognition` 和对应的语音识别引擎(如Google Speech Recognition, `pip install google-api-python-client` 或 `pip install pocketsphinx`) 2. 导入必要的模块: ```python import pyaudio from speech_recognition import.Recognizer, AudioSegment, GoogleSpeechRecognition ``` 3. 初始化音频设备和录音: ```python p = pyaudio.PyAudio() chunk_size = 1024 录音_rate = p.get_default_sample_rate() # 创建 Recognizer 实例 r = Recognizer() ``` 4. 记录麦克风声音: ```python def record_audio(): stream = p.open(format=pyaudio.paInt16, channels=1, rate=录音_rate, input=True, frames_per_buffer=chunk_size) audio_data = [] while True: data = stream.read(chunk_size) if not data: break audio_data.append(data) stream.stop_stream() stream.close() p.terminate() return AudioSegment.from_bytes(b''.join(audio_data), format="wav") ``` 5. 换音频为文字(假设使用Google Speech Recognition): ```python def transcribe_audio(audio_data): with open("temp.wav", "wb") as f: f.write(audio_data.raw_data) try: transcript = r.recognize_google(audio_data, language='zh-CN') except Exception as e: print(f"Error occurred: {e}") transcript = None return transcript ``` 6. 使用函数并处理结果: ```python audio_data = record_audio() transcribed_text = transcribe_audio(audio_data) print(f"Transcribed text: {transcribed_text}") ``` 注意:这只是一个基础示例,实际应用中可能需要处理噪音、异常情况以及设置语言等参数。另外,使用Google Speech Recognition服务需要网络连接,并遵守其服务条款。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值