用python编写录音机——记录一定时间的声音

先看代码👇

import pyaudio
import wave

def get_wav(sec):
    #创建对象
    pa = pyaudio.PyAudio()
    #创建流:采样位,声道数,采样频率,缓冲区大小,input
    stream = pa.open(format=pyaudio.paInt16,
                     channels=2,
                     rate=16000,
                     input=True,
                     frames_per_buffer=1024)
    #创建式打开音频文件
    wf = wave.open("test.wav", "wb")
    #设置音频文件的属性:采样位,声道数,采样频率,缓冲区大小,必须与流的属性一致
    wf.setnchannels(2)
    wf.setsampwidth(pa.get_sample_size(pyaudio.paInt16))
    wf.setframerate(16000)
    print("开始录音")
    #采样频率*秒数/缓冲区大小
    for w in range(int(16000*sec/1024)):
        data = stream.read(1024)#每次从流的缓存中读出数据
        wf.writeframes(data)#把读出的数据写入wf
    print("录音结束")
    stream.stop_stream()#先把流停止
    stream.close()#再把流关闭
    pa.terminate()#把对象关闭
    wf.close()#把声音文件关闭,否则不能播放
    return "test.wav"

file = get_wav(6)



 

创建流:(下为流中的参数)

影响声音的几个参数:采样位、声道数、采样频率、缓冲区大小。

### Python 实现语音识别算法 #### 语音识别简介 语音识别是一种让计算机能够理解并转录人类口语的技术。这项技术不仅涉及音频信号的捕捉,还包括复杂的模式匹配过程以确定最有可能说出的话语[^1]。 #### 使用 `SpeechRecognition` 库进行语音识别 为了简化开发流程,Python 提供了多个库来帮助开发者轻松集成语音识别功能到应用程序中。其中一种流行的选择就是 `SpeechRecognition` 库。该库允许程序访问多种在线和离线语音服务提供商的数据接口,并能有效地解析这些返回的结果作为可读取的文字形式输出给用户[^3]。 安装此库非常简单: ```bash pip install SpeechRecognition ``` 下面是一个基本的例子展示如何利用麦克风输入来进行实时录音并通过 Google Web API 进行识别: ```python import speech_recognition as sr def recognize_speech_from_mic(): recognizer = sr.Recognizer() with sr.Microphone() as source: print("请讲话...") audio_data = recognizer.listen(source) try: text = recognizer.recognize_google(audio_data, language="zh-CN") # 设置语言为中国普通话 print(f"你说的是: {text}") except Exception as e: print("抱歉,我没有听清楚,请再说一遍.") return "ERROR" if __name__ == "__main__": while True: result = recognize_speech_from_mic() if isinstance(result, str) and not result.startswith('ERROR'): break ``` 这段代码首先创建了一个 `Recognizer()` 对象实例化对象用于后续操作;接着定义了一个上下文管理器 (`with`) 来获取来自默认麦克风的声音片段;最后尝试调用 `recognize_google()` 方法将捕获到的声音转化为文本字符串表示出来。 #### Vosk——适用于多平台的高性能解决方案 对于那些寻求更高灵活性以及更好适应性的项目来说,Vosk 是一个不错的选择。它支持超过二十种不同的自然语言,并且可以在没有互联网连接的情况下正常运作于各种嵌入式硬件平台上,比如 Raspberry Pi 或智能手机等设备之上。更重要的是,Vosk 只需几行命令即可完成部署,而且其占用空间极小(大约50MB),非常适合资源受限环境下的应用场景[^5]。 要开始使用 Vosk ,同样可以通过 pip 工具快速安装依赖项: ```bash pip3 install vosk ``` 之后可以根据官方文档中的指导加载特定的语言模型文件夹,并编写相应脚本来处理本地或网络流传来的音轨资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值