【开个空调】语音识别+红外发射

这篇具有很好参考价值的文章主要介绍了【开个空调】语音识别+红外发射。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

废话少说,直接上空调板子:YAPOF3。红外接收发射模块用的某宝上发现的YF-33(遗憾解码还没搞清楚,不然做个lirc.conf功能才多)。最后是语音识别用的幻尔的,某宝自然也有,它是个i2c的接口。

【开个空调】语音识别+红外发射,Python,语音识别,人工智能,serial【开个空调】语音识别+红外发射,Python,语音识别,人工智能,serial 【开个空调】语音识别+红外发射,Python,语音识别,人工智能,serial

 本篇胡说八道其实纯粹为了留个地方以后知道怎么在python脚本里面写串口指令。接下来就顺带着讲一下全流程吧。

1. 先把幻尔的语音模块里面录好几个要说的话。

# initiate_yuyin.py
# encoding: utf-8
'''
Company: 深圳市幻尔科技有限公司
官网:hiwonder.com
日期:2019/9/20
by Aiden
'''
'''
 * 只能识别汉字,将要识别的汉字转换成拼音字母,每个汉字之间空格隔开,比如:幻尔科技 --> huan er ke ji
 * 最多添加50个词条,每个词条最长为79个字符,每个词条最多10个汉字
 * 每个词条都对应一个识别号(1~255随意设置)不同的语音词条可以对应同一个识别号,
 * 比如“幻尔科技”和“幻尔”都可以将识别号设置为同一个值
 * 模块上的STA状态灯:亮起表示正在识别语音,灭掉表示不会识别语音,当识别到语音时状态灯会变暗,或闪烁,等待读取后会恢复当前的状态指示
'''
#使用例程
import smbus
import time
import numpy

class ASR:

    # Global Variables
    address = None
    bus = None

    ASR_RESULT_ADDR = 100
    #识别结果存放处,通过不断读取此地址的值判断是否识别到语音,不同的值对应不同的语音

    ASR_WORDS_ERASE_ADDR = 101
    #擦除所有词条

    ASR_MODE_ADDR = 102
    #识别模式设置,值范围1~3
    #1:循环识别模式。状态灯常亮(默认模式)
    #2:口令模式,以第一个词条为口令。状态灯常灭,当识别到口令词时常亮,等待识别到新的语音,并且读取识别结果后即灭掉
    #3:按键模式,按下开始识别,不按不识别。支持掉电保存。状态灯随按键按下而亮起,不按不亮

    ASR_ADD_WORDS_ADDR = 160
    #词条添加的地址,支持掉电保存

    def __init__(self, address, bus=1):
        self.address = address
        self.bus = smbus.SMBus(bus)

    def readByte(self):
        return self.bus.read_byte(self.address)

    def writeByte(self, val):
        value = self.bus.write_byte(self.address, val)
        if value != 0:
            return False
        return True

    def writeData(self, reg, val):
        self.bus.write_byte(self.address,  reg)
        self.bus.write_byte(self.address,  val)

    def getResult(self):
        if ASR.writeByte(self, self.ASR_RESULT_ADDR):
            return -1
        value = self.bus.read_byte(self.address)
        return value
    '''
    * 添加词条函数,
    * idNum:词条对应的识别号,1~255随意设置。识别到该号码对应的词条语音时,
    *        会将识别号存放到ASR_RESULT_ADDR处,等待主机读取,读取后清0
    * words:要识别汉字词条的拼音,汉字之间用空格隔开
    *
    * 执行该函数,词条是自动往后排队添加的。
    '''
    def addWords(self, idNum, words):
        buf = [idNum]
        for i in range(0, len(words)):
            buf.append(eval(hex(ord(words[i]))))
        self.bus.write_i2c_block_data(self.address, self.ASR_ADD_WORDS_ADDR, buf)
        time.sleep(0.05)

    def eraseWords(self):
        result = self.bus.write_byte_data(self.address, self.ASR_WORDS_ERASE_ADDR, 0)
        time.sleep(0.06)
        if result != 0:
           return False
        return True

    def setMode(self, mode):
        result = self.bus.write_byte_data(self.address, self.ASR_MODE_ADDR, mode)
        if result != 0:
           return False
        return True

if __name__ == "__main__":
    addr = 0x79 #传感器iic地址
    asr = ASR(addr)

    if 1:
        asr.eraseWords()
        asr.setMode(1)
        asr.addWords(1,'miao le ge mi mi mi')  # 唤醒词条在此
        asr.addWords(2,'da kai kong tiao zhi leng')  # 打开空调制冷
        asr.addWords(3,'kong tiao zhi re kai')  # 空调制热开
        asr.addWords(4,'guan bi kong tiao') # 关闭空调

2. 开启唤醒模式,操控空调。

# yuyin.py
# encoding: utf-8
import smbus
import time
import serial

ser = serial.Serial(
    port='/dev/ttyUSB0',
    baudrate=9600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1
    )

class ASR:

    # Global Variables
    address = None
    bus = None

    ASR_RESULT_ADDR = 100

    ASR_MODE_ADDR = 102

    ASR_ADD_WORDS_ADDR = 160
    #词条添加的地址,支持掉电保存

    def __init__(self, address, bus=1):
        self.address = address
        self.bus = smbus.SMBus(bus)

    def readByte(self):
        return self.bus.read_byte(self.address)

    def writeByte(self, val):
        value = self.bus.write_byte(self.address, val)
        if value != 0:
            return False
        return True

    def writeData(self, reg, val):
        self.bus.write_byte(self.address,  reg)
        self.bus.write_byte(self.address,  val)

    def getResult(self):
        if ASR.writeByte(self, self.ASR_RESULT_ADDR):
            return -1
        value = self.bus.read_byte(self.address)
        return value

    def setMode(self, mode):
        result = self.bus.write_byte_data(self.address, self.ASR_MODE_ADDR, mode)
        if result != 0:
           return False
        return True

if __name__ == "__main__":
    addr = 0x79 #传感器iic地址
    asr = ASR(addr)

    #来自串口指令那个图片给的发送地址。这儿就已经用了3个,这个模块一共才4个位置。
    arr_data2 = [0x01,0x06,0x00,0x01,0x00,0x02,0x59,0xCB]
    arr_data3 = [0x01,0x06,0x00,0x01,0x00,0x03,0x98,0x0B]
    arr_data4 = [0x01,0x06,0x00,0x01,0x00,0x01,0x19,0xCA]

    if 1:
        asr.setMode(2)  #启动唤醒模式
        #asr.addWords(1,'miao le ge mi mi mi')  # 唤醒
        #asr.addWords(2,'da kai kong tiao zhi leng')  # 打开空调制冷
        #asr.addWords(3,'kong tiao zhi re kai')  # 空调制热开
        #asr.addWords(4,'guan bi kong tiao') # 关闭空调
    while 1:
        data = asr.getResult()
        #print("result:", data)
        if data == 2:
            #echo -en '\x01\x06\x00\x01\x00\x02\x59\xCB' > /dev/ttyUSB0
            ser.write(serial.to_bytes(arr_data2))
        elif data == 3:
            #echo -en '\x01\x06\x00\x01\x00\x03\x98\x0B' > /dev/ttyUSB0
            ser.write(serial.to_bytes(arr_data3))
        elif data == 4:
            #echo -en '\x01\x06\x00\x01\x00\x01\x19\xCA' > /dev/ttyUSB0
            ser.write(serial.to_bytes(arr_data4))
        else:
            continue
        time.sleep(0.5)

2023-09-01:换了一款红外模块,BQ-TTL-IRTM。这个直接解码出来的一长串hex code再发回给空调就好。意味着可以一个个定义:开,26度制冷4风,制热blablabla 。

【开个空调】语音识别+红外发射,Python,语音识别,人工智能,serial

GitHub - Michshelle/BQ-TTL-IRTM_Hiwonder: on Rpi4 for Speech recognition + IR transmission文章来源地址https://www.toymoban.com/news/detail-676362.html

到了这里,关于【开个空调】语音识别+红外发射的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 构建基于AWSLambda的人工智能应用:语音识别、图像识别和自然语言处理

    作者:禅与计算机程序设计艺术 在人工智能领域,用大数据、机器学习等方法来解决复杂的问题,已经成为越来越多企业和开发者关注的问题。但是,如何把这些方法落地到生产环境中,仍然是一个难题。 随着云计算平台的广泛普及,AWS Lambda作为一项服务正在成为各个公司

    2024年02月09日
    浏览(78)
  • 语音识别与VC维:改变人工智能的未来

    语音识别(Speech Recognition)是一种人工智能技术,它旨在将人类的语音信号转换为文本或其他形式的数据。这项技术在过去几年中得到了巨大的发展,并成为人工智能领域的一个关键技术。VC维(Vocabulary Coverage Dimension)是一种数学模型,用于描述语言模型的表达能力。在本文中,

    2024年02月19日
    浏览(61)
  • 人工智能-语音识别技术paddlespeech的搭建和使用

    PaddleSpeech是百度飞桨(PaddlePaddle)开源深度学习平台的其中一个项目,它基于飞桨的语音方向模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。PaddleSpeech支持语音识别、语音翻译(英译中)、语音合成、标点恢复等应用示例。

    2024年02月02日
    浏览(64)
  • 【人工智能】科大讯飞语音识别应用开发(第三集)

    这次需要对科大讯飞语音识别接口进行语音识别应用开发,前两次都是通过WebAPI调用接口,这次换一下,通过SDK调用接口 下面是开发的详细记录过程(基于前两次的基础上) 网址:https://www.xfyun.cn/services/voicedictation 不领服务量为500且该包免费( 貌似是不同应用都可以免费领

    2024年02月13日
    浏览(54)
  • 智能语音识别在人工智能应用中的重要性

    作者:禅与计算机程序设计艺术 随着计算机的发展、移动互联网的普及和互联网服务的快速发展,语音识别技术也逐渐走入人们的视野中。相对于手写文字或是拼音方式输入的方式,语音输入的方式带来的便利、准确率提高的效果,使得越来越多的人开始喜欢用语音的方式来

    2024年02月07日
    浏览(68)
  • OpenAI的人工智能语音识别模型Whisper详解及使用

            拥有ChatGPT语言模型的OpenAI公司,开源了 Whisper 自动语音识别系统,OpenAI 强调 Whisper 的语音识别能力已达到人类水准。         Whisper是一个通用的语音识别模型,它使用了大量的多语言和多任务的监督数据来训练,能够在英语语音识别上达到接近人类水平的鲁

    2024年02月09日
    浏览(62)
  • 极速进化,光速转录,C++版本人工智能实时语音转文字(字幕/语音识别)Whisper.cpp实践

    业界良心OpenAI开源的Whisper模型是开源语音转文字领域的执牛耳者,白璧微瑕之处在于无法通过苹果M芯片优化转录效率,Whisper.cpp 则是 Whisper 模型的 C/C++ 移植版本,它具有无依赖项、内存使用量低等特点,重要的是增加了 Core ML 支持,完美适配苹果M系列芯片。 Whisper.cpp的张量

    2024年02月02日
    浏览(68)
  • 人工智能技术在智能音箱中的应用:智能语音识别与智能交互

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 智能音箱作为智能家居的重要组成部分,近年来得到了越来越多的用户青睐。随着人工智能技术的不断发展,智能音箱的核心功能之一——智能语音识别与智能交互也越来越受到人们的关注。智能语音识别技术可以让用户更

    2024年02月07日
    浏览(59)
  • HTC红外发射器基站红灯,死机,恢复出厂固件操作步骤

    固件路径:C:Program Files (x86)SteamsteamappscommonSteamVRtoolslighthousefirmwarelighthouse_txarchivehtc_2.0 找到以下两个文件 lighthouse_tx_htc_2_0-calibration-rescue-244.bin lighthouse_tx_htc_2_0-244-2016-03-12.bin 1.在基站未通电情况下,将其通过micro-B USB传输线连接到PC。 2.按住基站背后的模式键并插入电

    2024年02月16日
    浏览(27)
  • 【人工智能124种任务大集合】-集齐了自然语言处理(NLP),计算机视觉(CV),语音识别,多模态等任务

    大家好,我是微学AI,今天给大家介绍一下人工智能124种任务大集合,任务集合主要包括4大类:自然语言处理(NLP)、计算机视觉(CV)、语音识别、多模态任务。 我这里整理了124种应用场景任务大集合,每个任务目录如下: 句子嵌入(Sentence Embedding):将句子映射到固定维

    2024年02月13日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包