树莓派接入麦克风,对接阿里云大模型语音转文字

树莓派接入麦克风,需要解压

树莓派镜像2021-10-18-raspbian-buster-full.7z
链接:https://pan.baidu.com/s/1egSPEmC6hLELDfryfEnwPA
提取码:he4y

镜像烧录工具 Win32DiskImager.7z
链接:https://pan.baidu.com/s/1uxmwMlPNjGXBP3lGGA5rzw
提取码:n3t0

阿里云百炼:https://bailian.console.aliyun.com/
目前只找到免费的,好用点的语音转文字大模型。每个月免费额度36000token

我使用的主板是树莓派zero2wh,配合此镜像的声卡驱动只支持频率44100,查了很多博客也没找到相关的资料。只能靠代码修改频率。修改频率的目的是因为,语音转文字16000的频次上传效果最好,44100的频次传上去识别比较差。

树莓派录音失真问题,失败,盲猜跟暂存区大小,频率相关。

import pyaudio
import wave
import librosa
# 填入自己的阿里云百炼key
dashscope.api_key = 'sk-xxxx'
CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("开始录音,请说话...")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("录音结束.")

stream.stop_stream()
stream.close()
p.terminate()

# 将录音数据转换为numpy数组
audio_data = b''.join(frames)
audio_np = np.frombuffer(audio_data, dtype=np.int16)

# 使用librosa进行采样率转换
y_16k = librosa.resample(audio_np, orig_sr=RATE, target_sr=16000)

# 进行后续处理,例如语音识别
# 注意:此处省略了语音识别的代码,你可以使用之前的`Recognition`类实例来处理转换后的音频数据
# recognition = Recognition(model='paraformer-realtime-v1', format='wav', sample_rate=16000)
# result = recognition.call(audio_data=y_16k)

# 如果需要,可以将转换后的音频保存为文件进行验证
# librosa.output.write_wav('output_16k.wav', y_16k, 16000)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值