基于百度語音識別API的Python語音識別小程序

一、功能概述

實現語音為文字,可以擴展到多種場景進行工作,這里只實現其基本的語言接收及轉換功能。
在語言錄入時,根據語言內容的多少與停頓時間,自動截取音頻進行轉換。
工作示例:
1084569-20180121043448490-1197956795.png

二、軟件環境

  • 操作系統:win10
  • 語言:Python 版本:3.6.0
  • Python庫:AipSpeech(百度語音識別SDK客戶端),wave,PyAudio,paInt16

    ###Python庫安裝:除百度為:pip install baidu-aip,其他直接 pip install *(庫名) 即可。

三、原理概述

利用wave,PyAudio搭建一個wav格式的簡易錄音機,基于百度API進行wav格式的音頻轉文本。

  • 簡易錄音機類(WWAV)有__save_wave_file音頻文件保存方法與my_record音頻錄制方法。在錄制音頻的方法中,加入了有效音頻測試的代碼,可以測試一小段時間內是否有有效音頻輸入,否則退出音頻錄制。
  • 轉換類(Translation)則為__get_file_content方法與get_word音頻轉換主方法。

四、核心代碼

my_record音頻錄制方法(WWAV類)

def my_record(self,TIME = 60,INTERVAL = 5):'''錄制并保存音頻文件,TIME錄制時間,INTERVAL測試間隔'''pa=PyAudio()tr = Translation()stream=pa.open(format = paInt16,channels=self.__channels,rate=self.__framerate,input=True,frames_per_buffer=self.__NUM_SAMPLES)my_buf=[] # 主音頻源buf=[] # 測試音頻源i=0while i < TIME*2: #控制錄音時間string_audio_data = stream.read(self.__NUM_SAMPLES)  # 獲取音頻片段my_buf.append(string_audio_data)if i < INTERVAL*2:buf.append(string_audio_data)i += 1elif i == INTERVAL*2:self.__save_wave_file('00.wav',buf) # 保存測試音頻err,a = tr.get_word('00.wav') # 得到測試音頻是否有效if err == 0:breaki = 0 # 初始化buf = [] # 同上print('.',end = ' ')self.__save_wave_file('01.wav',my_buf)stream.close()

get_word音頻轉換方法(Translation類)

def get_word(self,filePath):'''音頻轉文字,參數filePath為wav音頻地址,返回雙值:狀態(1為轉換成功)及轉換后文本或錯誤信息'''word = self.__client.asr(self.__get_file_content(filePath),'wav',8000,{'lan': 'zh'}) # 參數:語音對象,文件格式,采樣率,語種類型if word['err_no'] == 0: # 錯誤值為0(即正確)return 1,word['result'][0] # 返回 1 與 文本信息else:return 0,word['err_no'] # 否則返回 0 與 錯誤內容

源碼

GitHub地址

附:我又回來了,這個是不是大項目,正在寫,敬請期待!寒假會更一些學習筆記,一起加油

以上

轉載于:https://www.cnblogs.com/mxwbq/p/8323193.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539595.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539595.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539595.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring專業術語了解

組件/框架設計 侵入式設計 引入了框架&#xff0c;對現有的類的結構有影響&#xff1b;即需要實現或繼承某些特定類。 例如&#xff1a;Struts框架 非侵入式設計 引入了框架&#xff0c;對現有的類結構沒有影響。 例如&#xff1a;Hibernate框架 / Spring框架 控制反轉: In…

java修改ldap用戶密碼_LDAP 用戶更改自己的密碼

LDAP中采用了ACL的權限控制。在/etc/openldap/slapd.conf文件中&#xff1a;## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.#include/etc/openldap/schema/corba.schemainclude/etc/openldap/schema/core.schemainclud…

Spring第三篇【Core模塊之對象依賴】

tags: Spring 前言 在Spring的第二篇中主要講解了Spring Core模塊的使用IOC容器創建對象的問題&#xff0c;Spring Core模塊主要是解決對象的創建和對象之間的依賴關系&#xff0c;因此本博文主要講解如何使用IOC容器來解決對象之間的依賴關系&#xff01; 回顧以前對象依賴 我…

spring框架結構介紹

Spring提供了一站式解決方案&#xff1a; 1&#xff09; Spring Core spring的核心功能&#xff1a; IOC容器, 解決對象創建及依賴關系 2&#xff09; Spring Web Spring對web模塊的支持。 -->可以與struts整合,讓struts的action創建交給spring -->spring mvc模式 3…

java通過J2C獲取用戶名密碼_WAS服務器上的J2C別名有什么用途?

這是我LdapTemplate類 公共LdapTemplate getLdapTemplete(字符串ldapID) {WAS服務器上的J2C別名有什么用途&#xff1f;if (ldapID.equalsIgnoreCase(Constants.LDAP1)){if (ldapTemplate1 null){try{PasswordCredential passwordCredential j2cAliasUtility.getAliasDetails…

百度坐標轉換API使用

http://api.map.baidu.com/geoconv/v1/?coords121.54759,29.870724&from1&to5&aksGSOaO07WkRHHiCRxxbSQVBn 前提&#xff1a;121.54759,29.870724 是由手機硬件或谷歌地圖獲取的 錯誤的方法一&#xff1a; function standard2china(lng,lat){//http://api.map.ba…

Java語言所有異常類均繼承自_Java將運行錯誤分為兩類:(__)和(__), 其對應的類均派生自(__)類;...

【單選題】設 x,y 均為已定義的類名,下列聲明對象x1的語句中正確的是( )【判斷題】構造函數的方法名可以由編程人員任意命名。【單選題】能夠實現對原文的鑒別和不可否認性的認證技術是( )。【單選題】設有定義語句int a[]{66,88,99}; 則以下對此語句的敘述錯誤的是( )。【判斷…

Quartz業務類無法注入Spring對象問題

tags: 解決錯誤, titile: Quartz業務類無法注入Spring對象問題 Quartz業務類無法注入Spring對象問題 在剛開始遇到的時候還以為是Spring配置哪里錯誤了&#xff0c;結果搞了那么久&#xff0c;才知道Quartz與Spring注入對象是不關聯的。。 因為Quartz的業務Job對象是由Quartz來…

如何解決ajax跨域問題

原文&#xff1a;http://www.congmo.net/blog/2012/06/27/ajax-cross-domain/ 跨域問題 起 因是這樣的&#xff0c;為了復用&#xff0c;減少重復開發&#xff0c;單獨開發了一個用戶權限管理系統&#xff0c;共其他系統獲取認證與授權信息&#xff0c;暫且稱之為A系統&#xf…

spring bean創建細節

1) 對象創建&#xff1a; 單例/多例 scope"singleton", 默認值&#xff0c;即默認是單例【service/dao/工具類】 scope"prototype", 多例&#xff1b;【Action對象】 2) 什么時候創建? scope"prototype" 在用到對象的時候&#xff0c…

發送郵件程序報錯454 Authentication failed以及POP3和SMTP簡介

一、發現問題 在測試郵件發送程序的時候&#xff0c;發送給自己的QQ郵箱&#xff0c;程序報錯454 Authentication failed, please open smtp flag first。 二、解決問題 進入QQ郵箱——>設置——>賬戶——>POP3/IMAP/SMTP選擇——>開啟POP3/SMTP服務。 三、POP3和S…

MySQL數據庫是非關系_MySQL(數據庫)基礎知識、關系型數據庫yu非關系型數據庫、連接認證...

什么是數據庫&#xff1f;數據庫(Database)&#xff1a;存儲數據的倉庫高效地存儲和處理數據的介質(介質主要是兩種&#xff1a;磁盤和內存)數據庫系統&#xff1a;DBS(Database System)&#xff1a;是一種虛擬系統&#xff0c;將多種內容關聯起來的稱呼DBS DBMS DBDBMS&…

WPF 使用MahApps.Metro UI庫

http://www.cnblogs.com/happyyftk/p/6904766.html 本文示例源碼下載&#xff1a;MetroWPF 官方示例地址&#xff1a;http://mahapps.com/guides/quick-start.html 官方控件示例地址&#xff1a;http://mahapps.com/controls/ MahApps.Metro 項目源碼&#xff1a;https://githu…

SpringIOC容器-創建對象

SpringIOC容器&#xff0c;是spring核心內容。功能&#xff1a;創建對象&#xff0c;處理對象的依賴關系 IOC容器創建對象&#xff1a; 創建對象, 有幾種方式&#xff1a; 1&#xff09; 調用無參數構造器 2&#xff09; 帶參數構造器 3&#xff09; 工廠創建對象 工廠類&…

java注釋搞笑圖案_搞笑的代碼注釋,那些有趣的程序員

發表于 2019-04-24 16:11:26 by 月小升搞笑/**** .::::.* .::::::::.* ::::::::::: F*CK YOU* ..:::::::::::* ::::::::::::* .::::::::::* ::::::::::::::..* ..::::::::::::.* ::::::::::::::::* ::::::::::::: .:::.* :::: ::::: .::::::::.* .:::: :::: .:::::::::::.* .::…

SpringIOC容器-對象依賴

1 概述 Spring中&#xff0c;如何給對象的屬性賦值? 【DI, 依賴注入】 1) 通過構造函數 2) 通過set方法給屬性注入值 3) p名稱空間 4) 自動裝配 5) 注解 1.1 通過構造函數 <!-- ###############對象屬性賦值############### --><!-- 1) 通過構造函數 --><be…

f5長連接策略

但是把這些短連接匯聚到一起&#xff0c;集中F5的設備上&#xff0c;通過F5與服務器建立平滑的長連接&#xff0c;就解決了不斷增大的并發連接。比如說前臺有15萬個并發連接&#xff0c;經過F5的優化&#xff0c;在服務器上只有不到5000個并發連接&#xff0c;而且在此過程中&a…

pdo-mysql_PHP: MySQL (PDO) - Manual

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(int)Если этот атрибут установлен в true вPDOStatement, MySQL-драйвербудет использовать буферизованные версии API MySQL.Если вы пишете пе…

Spring IOC容器【p名稱空間注入屬性值 】

# p 名稱空間給對象的屬性注入值(spring3.0以上版本才支持) 需要引入&#xff1a; xmlns:p"http://www.springframework.org/schema/p" 舉例 applicationContext.xml <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http…

Spring properties定義bean

2019獨角獸企業重金招聘Python工程師標準>>> Spring提供了豐富的標簽和注解來進行bean的定義&#xff0c;除此之外框架來提供了擴展機制讓使用可以通過properties來定義bean&#xff0c;與強大的標簽式和注解式的bean定義相比&#xff0c;properties提供的規則要簡單…