码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python 语音识别(百度api)


    文章目录

    • 前言
    • 准备
    • 下载库
    • 代码实现以及
    • 编写我的key
    • 语音的录入:
    • 使用百度语音作为STT引擎并通过pyttsx3函数将返回的内容读出来形成简单的对话
    • 完整代码
    • 运行结果


    前言

    现在语音助手已经成为我们生活中ai的代表,下面让我们看一下语音助手的语音输入功能


    准备

    1. 让我们搜索一下百度的开放平台

    在这里插入图片描述

    1. 进入百度开放平台后选择短语音识别
      在这里插入图片描述

    2. 然后去领取免费的资源
      在这里插入图片描述

    3. 创建应用
      在这里插入图片描述

    4. 记住相关的key
      在这里插入图片描述

    下载库

    本次用到的库(以及引入方法):

    import speech_recognition as sr
    from aip import AipSpeech
    import pyttsx3
    
    • 1
    • 2
    • 3

    代码实现以及

    编写我的key

    APP_ID = '27468776'
    API_KEY = 'ygQgtR4DIh14lDi8gwSMCm7o'
    SECRET_KEY = '7flGlZba42ZYxHudy3dSQ8YW4n89W5hc'
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    • 1
    • 2
    • 3
    • 4

    语音的录入:

    try:
        def rec(rate=16000):
            r = sr.Recognizer()
            with sr.Microphone(sample_rate=rate) as source:
                print("请说话")
                audio = r.listen(source)
    
            with open("recording.wav", "wb") as f:
                f.write(audio.get_wav_data())
    except:
        print("语音录入发生错误")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    使用百度语音作为STT引擎并通过pyttsx3函数将返回的内容读出来形成简单的对话

        with open('recording.wav', 'rb') as f:
            audio_data = f.read()
    
            result = client.asr(audio_data, 'wav', 16000, {
            'dev_pid': 1536,
        })
            try:
                result_text = result["result"][0]
                print("你说: " + result_text)
    
    
                if result_text =="于金龙":
                    engine = pyttsx3.init()
                    engine.say('真帅')
                    engine.runAndWait()
                elif result_text=="张新凯":
                    engine = pyttsx3.init()
                    engine.say('真难看')
                    engine.runAndWait()
            except:
                print("没有识别到语音")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    完整代码

    import pyttsx3
    
    import speech_recognition as sr
    from aip import AipSpeech
    
    # Baidu Speech API, replace with your personal key
    APP_ID = '27468776'
    API_KEY = 'ygQgtR4DIh14lDi8gwSMCm7o'
    SECRET_KEY = '7flGlZba42ZYxHudy3dSQ8YW4n89W5hc'
    
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    # Use SpeechRecognition to record
    try:
        def rec(rate=16000):
            r = sr.Recognizer()
            with sr.Microphone(sample_rate=rate) as source:
                print("请说话")
                audio = r.listen(source)
    
            with open("recording.wav", "wb") as f:
                f.write(audio.get_wav_data())
    except:
        print("语音录入发生错误")
    
    
    # 使用百度语音作为STT引擎
    def listen():
        with open('recording.wav', 'rb') as f:
            audio_data = f.read()
    
            result = client.asr(audio_data, 'wav', 16000, {
            'dev_pid': 1536,
        })
            try:
                result_text = result["result"][0]
                print("你说: " + result_text)
    
    
                if result_text =="阿龙":
                    engine = pyttsx3.init()
                    engine.say('真帅')
                    engine.runAndWait()
                elif result_text=="其他人":
                    engine = pyttsx3.init()
                    engine.say('真难看')
                    engine.runAndWait()
            except:
                print("没有识别到语音")
    
    
    while True:
        rec()
        request = listen()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    运行结果

    在这里插入图片描述

  • 相关阅读:
    C# 中的Async 和 Await 的用法详解
    zookeeper+kafka群集
    修饰生物素DIAZO-生物素-PEG3-DBCO|重氮-生物素-三聚乙二醇-二苯基环辛炔
    python快速构建http服务
    基于SpringBoot的冬奥会科普平台设计与实现-计算机毕业设计源码
    荣23转债上市价格预测
    CentOS 7搭建LittlePaimon原神机器人
    自己动手实现rpc框架(一) 实现点对点的rpc通信
    基于WMI更新Windows系统信息采集程序sysInfo的一些收获
    GitHub上线重量级分布式架构原理设计笔记,开源的东西看着就是爽
  • 原文地址:https://blog.csdn.net/yujinlong2002/article/details/126864522
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号