2017-12-01 17:00:49 zhenghongzhi6 阅读数 7789
  • micropython基础入门(esp32/esp8266单片机开发)

    micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。 为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。 为记录单片机传输过来的数据, 本教程会教大家入门数据库。 本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。 学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)

    364 人正在学习 去看看 陈恩棋

本文首发于“洪流学堂”公众号。
洪流学堂,让你快人几步

源码地址

https://github.com/zhenghongzhi/WitBaiduAip

功能概述

1 语音识别

  1. 从麦克风录制音频
  2. AudioClip的音频数据转换为百度语音识别的PCM16格式
  3. 百度语音识别Restful接口的封装以及一个测试场景

2 语音合成

  1. 百度语音合成Restful接口的封装以及一个测试场景
  2. mp3格式运行时转为AudioClip进行播放

为什么不使用百度的C# SDK
百度的C# SDK使用了一些Unity不支持的特性,直接导入unity不能用
而且百度C# SDK只是封装了Restful的接口,功能上并没有增多
自己编写更简洁

更新说明

2018-08-22更新

根据百度API的更新,语音合成性能优化,直接使用原生格式,移除第三方插件

2018-03-28更新

加入平台判断,更好的支持android和ios

2018-01-11更新

在工程中加入了语音合成

2018-01-02更新

应广大小伙伴的要求,对工程进行了重构,放出github源码
https://github.com/zhenghongzhi/WitBaiduAip

2017-12-23更新

教程首发


洪流学堂,让你快人几步
欢迎关注“洪流学堂”微信公众号

2017-12-29 13:43:36 anniejohnson 阅读数 584
  • micropython基础入门(esp32/esp8266单片机开发)

    micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。 为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。 为记录单片机传输过来的数据, 本教程会教大家入门数据库。 本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。 学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)

    364 人正在学习 去看看 陈恩棋

语智科技FFASR远场语音识别开发者平台即日上线
登陆语智科技官网,调用API即可免费接入:www.yuzhix.com

什么是FFASR?

语智科技FFASR(Far-Field Automatic Speech Recognition) 是专门针对于远场语音交互开发的识别引擎,使远场交互不再局限于麦克风阵列,使任意麦克风采集的音频亦可接入云端识别引擎,获得语音识别结果。

图片描述

FFASR与传统ASR有什么区别?

图片描述

FFASR有哪些特点?

图片描述

为什么FFASR拥有领先15%的卓越性能?

在FFASR远场语音识别引擎上实现这一优异的性能表现,是基于语智科技对远场语音识别的技术链条上每个环节有着学术积累和深刻理解,以及在远场降噪、Deep Learning、声学模型、语言模型等多个领域拥有的技术积累和整合能力。

具体来说,由于FFASR远场识别引擎是通过算法进行声学降噪处理,因此对声学降噪需要解决的三个干扰问题——噪声、混响、干涉进行了精确的数学建模,这同时对处理声学降噪的神经网络提出了更高的设计要求。为了能够同时处理前端声学降噪和语音识别,语智科技FFASR算法将CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)进行了深度整合,搭建了更复杂的深度学习网络,并将网络分成很多部分,用以处理不同的任务。而这样的神经网络还需要更适配和先进的训练平台,语智科技独立设计了的训练平台,替代通常使用的Kaldi ASR进行网络结构训练。

哪些人群适合使用FFASR?

1.手机厂商
2.IoT设备厂商
3.想拥有远场语音交互能力又不想/能使用麦克风阵列的人
4.Geeks

即刻接入FFASR远场语音开发者平台,是时候,让远场语音交互真正来临.

2018-06-04 08:20:59 qq_32716885 阅读数 1618
  • micropython基础入门(esp32/esp8266单片机开发)

    micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。 为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。 为记录单片机传输过来的数据, 本教程会教大家入门数据库。 本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。 学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)

    364 人正在学习 去看看 陈恩棋

(1)隐藏语音,显示语音识别

“开始聆听”------------>>>>> 让计算机听您说话

“停止聆听” ----------->>>>> 让计算机停止说话

“移动语音识别” -------->>>>> 将语音识别麦克风移开

“最小化语音识别” ------>>>>> 最小化麦克风栏

(2)如果有问题时,输入的内容有误时

“更正xxxxx”

(3)在输入某段话时,如果不想要这句话时

“撤销”、“撤销这个”、“删除这个”

(4)如果想要删除单独的字词

“删除XX”

(5)想要删除某一语句

选择对到短语句号

(6)在选择后不想删除时

“清除选择”

(7)在语音输入的内容中,有一个词语是错误时,且更正里面的替换面板中没有对自己有用的信息时,直接念自己想要的词语

(8)想要实现“Enter”效果

“新路段”/ 换行

(9)想要在语音中输入英文单词时

“拼写”

        要实现大写字母时,

“大写Q”

(10)想要单独修改某个词

    “转到XX”/ “转到XX后面”

    “选择XX”再说出更改的内容

(11)将光标放到文档结尾

“转到文档结尾”/“转到文档开始”

(12)选择光标前后内容

    “选择前面三个字符”

    “选择后面六个字符”

(13)将“语音识别”,更改为“对计算机听写”

“选择语音识别”----->>>> “对计算机听写”

(14)想要实现键盘上的操作

    “按下a”        “Enter”        “空格键”        “按下shift a”        “按下大写字母B”

    “按下下箭头”        “按下y3次”====>>(yyy)

(15)新行

在文档中插入新行

(16)打开电脑应用软件

    “开始”==>> “所有程序”===>>“附件”==>>“写字板”===说出想写的内容

(17)滚动鼠标功能

“向上滚动”/ “向下滚动”

(18)在一个应用软件中自动切换

“转到XX”

“切换到记事本”

“启动记事本”


好了,以上是我在使用win7下的 微软自带的语音识别的一些操作命令,进行了整理,如果有需要的博友可以作为简单的参考。

2017-10-13 16:01:32 sinat_15735647 阅读数 544
  • micropython基础入门(esp32/esp8266单片机开发)

    micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。 为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。 为记录单片机传输过来的数据, 本教程会教大家入门数据库。 本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。 学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)

    364 人正在学习 去看看 陈恩棋

在 2016 年的 WWDC 上,Apple 介绍了一个十分有用的语音识别 API,那就是 Speech 框架。Speech 框架能够帮助你快速的集成语音输入的功能到APP。
2016 年的 WWDC Speech 框架视频

下面介绍一下简单的集成过程。
1 获取APP 授权信息
- 麦克风的使用 NSMicrophoneUsageDescription
- 语音的识别 NSSpeechRecognitionUsageDescription
可以通过Info 文件为以上两个Key 值设置请求授权提示信息,也可在info.plist 的原文件添加。

<key>NSMicrophoneUsageDescription</key>  <string>Your microphone will be used to record your speech when you press the &quot;Start Recording&quot; button.</string>

<key>NSSpeechRecognitionUsageDescription</key>  <string>Speech recognition will be used to determine which words you speak into this device&apos;s microphone.</string>

2 实现Speech
首先需要在swift文件中导入

import Foundation
import UIKit
import Speech
import AudioToolbox
import AVFoundation

然后创建用于语音识别的实例对象

// MARK: Properties

    private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh_CN"))!

    private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?

    private var recognitionTask: SFSpeechRecognitionTask?

    private var audioEngine = AVAudioEngine()

    private var result = ""

    public var delegate: BDPSpeechDelegate?

    private var timer : Timer?

启动语语音识别

    public func startRecording() throws {

        self.checkSpeech()

        // Cancel the previous task if it's running.
        if let recognitionTask = recognitionTask {
            recognitionTask.cancel()
            self.recognitionTask = nil
        }

        let audioSession = AVAudioSession.sharedInstance()
        try audioSession.setCategory(AVAudioSessionCategoryRecord)
        try audioSession.setMode(AVAudioSessionModeMeasurement)
        try audioSession.setActive(true, with: .notifyOthersOnDeactivation)

        recognitionRequest = SFSpeechAudioBufferRecognitionRequest()

        guard let inputNode = audioEngine.inputNode else {
            print("Audio engine has no input node")
            return
        }

        guard let recognitionRequest = recognitionRequest else {
            print("Unable to created a SFSpeechAudioBufferRecognitionRequest object")
            return
        }

        if  inputNode.numberOfInputs > 0 {

            // Configure request so that results are returned before audio recording is finished
            recognitionRequest.shouldReportPartialResults = true

            // A recognition task represents a speech recognition session.
            // We keep a reference to the task so that it can be cancelled.
            recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in
                var isFinal = false

                if let result = result {
                    if !result.isFinal &&  result.bestTranscription.formattedString != "" {
                        // if did't get any voice input after 1 second, auto end audioEngine
                        self.timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: false, block: { (timer) in
                            self.audioEngine.stop()
                            self.recognitionRequest?.endAudio()
                            self.audioEngine.inputNode?.removeTap(onBus: 0)
                        })
                    } else {
                        self.timer?.invalidate()
                        self.timer = nil
                    }

                    isFinal = result.isFinal

                    self.delegate?.voiceChanged(result: result.bestTranscription.formattedString)
                    self.result = result.bestTranscription.formattedString
                    print("---isFinal", isFinal, result.bestTranscription.formattedString, self.result == result.bestTranscription.formattedString)

                    if isFinal {
                        self.delegate?.didStopRecording(result: result.bestTranscription.formattedString)
                    }
                }

                if error != nil || isFinal {
                    self.audioEngine.stop()
                    inputNode.removeTap(onBus: 0)

                    self.recognitionRequest = nil
                    self.recognitionTask = nil

                    self.timer?.invalidate()
                    self.timer = nil
                    print("---audioEngine stoped", isFinal)
                    self.delegate?.speechTaskError()
                }
            }

            let recordingFormat = inputNode.outputFormat(forBus: 0)

            inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
                self.recognitionRequest?.append(buffer)
            }
            audioEngine.prepare()

            try audioEngine.start()

            self.result = ""
        }
    }

始录音和停止录音的方法

// MARK: Start record

public func record() {
    try! startRecording()
    if audioEngine.isRunning {
        print("---- Speech start recording")
    }
}

// MARK:  Stop record

public func stop() {
    if audioEngine.isRunning {
        audioEngine.stop()
        recognitionRequest?.endAudio()
        audioEngine.inputNode?.removeTap(onBus: 0)

        audioEngine.reset()

        self.timer?.invalidate()
        self.timer = nil
        print("---- Speech end recording")
    }
}
public protocol SpeechDelegate {
    func didStopRecording(result: String)
    func voiceChanged(result: String)
    func authorizeDenied()
    func speechTaskError()
}

最后值得注意的是
Apple 对每台设备的识别有限制。详情未知,不过你可以尝试联系 Apple 获得更多信息。
Apple 对每个应用的识别也有限制。
如果你总是遭遇限制,务必联系 Apple,他们或许可以解决这个问题。
语音识别会消耗不少电量和流量。
语音识别每次只能持续大概一分钟。

Siri Speech对中文识别的准确率很差一些没有专业的词汇基本上听不出来
Siri Speech稳定性也很低, 在不同机型上面识别效率不一样,相同的条件下有时候能识别有时候不能识别。
Siri Speech对网络要求很高,由于服务器的原因,经常获取不到返回结果

2017-05-23 07:12:32 liuyuehui110 阅读数 1426
  • micropython基础入门(esp32/esp8266单片机开发)

    micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。 为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。 为记录单片机传输过来的数据, 本教程会教大家入门数据库。 本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。 学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)

    364 人正在学习 去看看 陈恩棋

在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音。

 

1

以上,当我说"name",显示"Darren",我说"age",显示"永远21"。如何做呢?


首先要开启电脑的语音识别功能。


右键电脑右下方的扬声器,选择"录音设备"。


点击默认的"麦克风",再点击左下角的"配置"按钮。

2


点击"启动语音识别"。

3

 

一系列简单设置后,屏幕上出现如下:

4

 

在VS中创建一个窗体应用程序,界面上有一个RichTextBox和2个Button。


添加System.Speech的引用。

 

编写如下:

    public partial class Form1 : Form
    {
        SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
        public Form1()
        {
            InitializeComponent();
        }
        private void btnEnable_Click(object sender, EventArgs e)
        {
            recEngine.RecognizeAsync(RecognizeMode.Multiple);
            btnDisable.Enabled = true;
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            Choices preCmd = new Choices();
            preCmd.Add(new string[] { "name", "age" });
            GrammarBuilder gb = new GrammarBuilder();
            gb.Append(preCmd);
            Grammar gr = new Grammar(gb);
            recEngine.LoadGrammarAsync(gr);
            recEngine.SetInputToDefaultAudioDevice();
            recEngine.SpeechRecognized += recEngine_SpeechRecognized;
        }
        void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            switch (e.Result.Text)
            {
                case "name":
                    richTextBox1.Text += "\nDarren";
                    break;
                case "age":
                    richTextBox1.Text += "\n永远21";
                    break;
            }
        }
        private void btnDisable_Click(object sender, EventArgs e)
        {
            recEngine.RecognizeAsyncStop();
            btnDisable.Enabled = false;
        }
    }

 

当然,中文的语音识别也是可以滴。

  

好玩Y(^_^)Y   

没有更多推荐了,返回首页