使用sounddevice+soudfile将麦克风录音保存为wav文件,然后再转换为文字,实现ASR

也可以保存为mp3文件,直接把文件的后缀更改一下就行
也可以直接将麦克风语音转换为文字,但是识别效果不如先保存为文件,再识别的效果好。
代码:

# -*- coding: utf-8 -*-

import sounddevice as sd
import soundfile as sf

class SPEECH2FILE:
    def __init__(self):
        self.duration = 5  # 录制时长(秒)
        self.sample_rate = 16000  # 采样率


    def record_audio(self):
        # 录制麦克风音频
        print(f"开始录音,请说话...(时长为{self.duration}秒)")
        audio = sd.rec(int(self.duration * self.sample_rate), samplerate=self.sample_rate, channels=1)
        sd.wait()  # 等待录音完成
        return audio

    def save_audio_to_file(self, audio, file_path):
        sf.write(file_path, audio, self.sample_rate)


if __name__ == "__main__":
    speech2file = SPEECH2FILE()

    # 录制音频
    audio = speech2file.record_audio()

    # 保存音频为文件
    file_path = 'recorded_audio2.wav'
    speech2file.save_audio_to_file(audio, file_path)

    print("录音已保存为文件:", file_path)


T
使用谷歌的SpeechRecongition将音频文件转换为文字

import speech_recognition as sr

class CATT():

    def convert_audio_to_text(self, file_path):
        r = sr.Recognizer()

        with sr.AudioFile(file_path) as source:
            audio_data = r.record(source)  # 从音频文件中读取音频数据
            # print(str(audio_data))
        while True:
            try:
                text = r.recognize_google(audio_data, language='zh-CN')
                return text
            except sr.UnknownValueError:
                print("语音识别无法理解音频内容")
            except sr.RequestError as e:
                print("无法连接到语音识别服务:{0}".format(e))

        return ""
if __name__ == "__main__":

    catt = CATT()
    # 指定音频文件路径
    file_path = '../recordFile/recorded_audio.wav'

    # 将音频文件转换为文字
    text = catt.convert_audio_to_text(file_path)

    print("转换结果:", text)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用百度AI的语音识别API来实现麦克风中的语音转换文字。下面是使用Python的示例代码: 首先,你需要在百度AI开放平台上创建一个应用,获取到应用的API Key和Secret Key。 然后,你可以使用Python中的`speech_recognition`库来录制麦克风中的语音,并将语音发送给百度AI的语音识别API进行处理。 下面是一个示例代码: ```python import speech_recognition as sr import requests # 设置百度AI的API Key和Secret Key API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' # 创建一个Recognizer对象 r = sr.Recognizer() # 使用麦克风录制语音 with sr.Microphone() as source: print("请开始说话...") audio = r.listen(source) # 将语音发送给百度AI的语音识别API url = 'https://vop.baidu.com/server_api' data = { 'format': 'wav', 'rate': 16000, 'channel': 1, 'cuid': 'your_cuid', 'token': 'your_token', 'speech': audio.get_wav_data(), } headers = { 'Content-Type': 'application/json' } response = requests.post(url, json=data, headers=headers) # 解析返回的结果 result = response.json() if result['err_no'] == 0: print("识别结果:", result['result'][0]) else: print("识别失败:", result['err_msg']) ``` 在上述代码中,你需要将`your_api_key`和`your_secret_key`替换为你在百度AI开放平台上创建应用时所获得的API Key和Secret Key。同时,你还需要设置一个`cuid`和`token`,可以随意设置。 运行上述代码后,它会使用麦克风录制一段语音,并将语音发送给百度AI的语音识别API进行处理,最后打印出识别的结果。 希望对你有帮助!如果有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值