調(diào)用騰訊云的語(yǔ)音識(shí)別(一句話識(shí)別)接口-Python版。
成都創(chuàng)新互聯(lián)是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序定制開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10余年以來,已經(jīng)為成百上千成都?jí)w彩繪各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的成百上千客戶與我們一路同行,見證我們的成長(zhǎng);未來,我們一起分享成功的喜悅。
安裝語(yǔ)音識(shí)別,語(yǔ)音識(shí)別器編碼,處理Ubuntu服務(wù)器,處理WSL。
要運(yùn)行我們代碼的語(yǔ)音識(shí)別庫(kù),我們首先需要安裝語(yǔ)音識(shí)別,然后還必須安裝PyAudio。首先,我們從主包開始:sudo pip3 install SpeechRecognition安裝應(yīng)該遵循完全相同的格式,但我似乎缺少了讓它正常工作的軟件包,試圖安裝PyAudio會(huì)出錯(cuò)。這些軟件包應(yīng)該刪除該錯(cuò)誤。那時(shí)我不需要更新apt,但先更新它并不壞處。sudo apt-get install libasound-dev portaudio19-dev libportaudio2libportaudiocpp0有了它,您應(yīng)該可以安裝PyAudio:sudo pip3 install PyAudio語(yǔ)音識(shí)別器編碼。
運(yùn)行WSL(Linux版Windows子系統(tǒng))的Windows機(jī)器。它也使用了Ubuntu 16.04,所以安裝過程是一樣的。不過說到使用麥克風(fēng),WSL并不那么簡(jiǎn)單。為了通過Ubuntu終端應(yīng)用程序控制麥克風(fēng),需要安裝PulseAudio。
什么是接口 ?
接口只是定義了一些方法,而沒有去實(shí)現(xiàn),多用于程序設(shè)計(jì)時(shí),只是設(shè)計(jì)需要有什么樣的功能,但是并沒有實(shí)現(xiàn)任何功能,這些功能需要被另一個(gè)類(B)繼承后,由 類B去實(shí)現(xiàn)其中的某個(gè)功能或全部功能。
個(gè)人的理解,多用于協(xié)作開發(fā)時(shí),有不同的人在不同的類中實(shí)現(xiàn)接口中的各個(gè)方法。
在python中接口由抽象類和抽象方法去實(shí)現(xiàn),接口是不能被實(shí)例化的,只能被別的類繼承去實(shí)現(xiàn)相應(yīng)的功能。
個(gè)人覺得接口在python中并沒有那么重要,因?yàn)槿绻^承接口,需要把其中的每個(gè)方法全部實(shí)現(xiàn),否則會(huì)報(bào)編譯錯(cuò)誤,還不如直接定義一個(gè)class,其中的方法實(shí)現(xiàn)全部為pass,讓子類重寫這些函數(shù)。
當(dāng)然如果有強(qiáng)制要求,必須所有的實(shí)現(xiàn)類都必須按照接口中的定義寫的話,就必須要用接口。
方法一:用抽象類和抽象函數(shù)實(shí)現(xiàn)方法
[python]?view plain?copy
#抽象類加抽象方法就等于面向?qū)ο缶幊讨械慕涌?/p>
from?abc?import?ABCMeta,abstractmethod
class?interface(object):
__metaclass__?=?ABCMeta?#指定這是一個(gè)抽象類
@abstractmethod??#抽象方法
def?Lee(self):
pass
def?Marlon(self):
pass
class?RelalizeInterfaceLee(interface):#必須實(shí)現(xiàn)interface中的所有函數(shù),否則會(huì)編譯錯(cuò)誤
def?__init__(self):
print?'這是接口interface的實(shí)現(xiàn)'
def?Lee(self):
print?'實(shí)現(xiàn)Lee功能'
def?Marlon(self):
pass
class?RelalizeInterfaceMarlon(interface):?#必須實(shí)現(xiàn)interface中的所有函數(shù),否則會(huì)編譯錯(cuò)誤
def?__init__(self):
print?'這是接口interface的實(shí)現(xiàn)'
def?Lee(self):
pass
def?Marlon(self):
print?"實(shí)現(xiàn)Marlon功能"
方法二:用普通類定義接口,
[python]?view plain?copy
class?interface(object):?#假設(shè)這就是一個(gè)接口,接口名可以隨意定義,所有的子類不需要實(shí)現(xiàn)在這個(gè)類中的函數(shù)
def?Lee(self):,
pass
def?Marlon(self):
pass
class?Realaize_interface(interface):
def?__init__(self):
pass
def?Lee(self):
print?"實(shí)現(xiàn)接口中的Lee函數(shù)"
class?Realaize_interface2(interface):
def?__init__(self):
pass
def?Marlon(self):
print?"實(shí)現(xiàn)接口中的Marlon函數(shù)"
obj=Realaize_interface()
obj.Lee()
obj=Realaize_interface2()
obj.Marlon()
ctypes:? 可直接調(diào)用c語(yǔ)言動(dòng)態(tài)鏈接庫(kù)。
使用步驟:
1 編譯好自己的動(dòng)態(tài)連接庫(kù)
2 利用ctypes載入動(dòng)態(tài)連接庫(kù)
3 用ctype調(diào)用C函數(shù)接口時(shí),需要將python變量類型做轉(zhuǎn)換后才能作為函數(shù)參數(shù),轉(zhuǎn)換原則見下圖:
4 Python若想獲取ctypes調(diào)用的C函數(shù)返回值,需要先指定返回值類型。我們將在接下來的完整Sample中看到如何使用。
#Step?1:??test.c#include?stdio.h
int?add(int?a,?int?b)
{
return?a?+?b;
}#Step?2:?編譯動(dòng)態(tài)鏈接庫(kù)?(?如何編譯動(dòng)態(tài)鏈接庫(kù)在本文不詳解,網(wǎng)上資料一大堆。)gcc?-fPIC?-shared?test.c?-o?libtest.so??
#Step?3:??test.py
from?ctypes?import?*mylib?=?CDLL("libtest.so")???或者???cdll.LoadLibrary("libtest.so")???add?=?mylib.add
add.argtypes?=?[c_int,?c_int]?#?參數(shù)類型,兩個(gè)int(c_int是ctypes類型,見上表)
add.restype?=?c_int?#?返回值類型,int?(c_int?是ctypes類型,見上表)
sum?=?add(3,?6)
在操作文件的時(shí)候,我們肯定是要使用到 os 模塊的,但是 os 模塊里面還有 path 模塊,這個(gè)模塊主要是用來獲取文件的屬性的。這篇博客來分享一下 path 模塊的函數(shù),希望對(duì)學(xué)習(xí) Python 的小伙伴有所幫助。
返回絕對(duì)路徑:
返回文件名:
返回list(多個(gè)路徑)中,所有path共有的最長(zhǎng)的路徑:
返回文件路徑:
路徑存在則返回True,路徑損壞返回False:
路徑存在則返回True,路徑損壞也返回True:
把path中包含的" "和" user"轉(zhuǎn)換成用戶目錄:
根據(jù)環(huán)境變量的值替換path中包含的" {name}":
返回最近訪問時(shí)間(浮點(diǎn)型秒數(shù)):
返回最近文件修改時(shí)間:
返回文件 path 創(chuàng)建時(shí)間:
返回文件大小,如果文件不存在就返回錯(cuò)誤:
判斷是否為絕對(duì)路徑:
判斷路徑是否為文件:
判斷路徑是否為目錄:
判斷路徑是否為鏈接:
判斷路徑是否為掛載點(diǎn):
把目錄和文件名合成一個(gè)路徑:
轉(zhuǎn)換path的大小寫和斜杠:
規(guī)范path字符串形式:
返回path的真實(shí)路徑:
從start開始計(jì)算相對(duì)路徑:
判斷目錄或文件是否相同:
判斷fp1和fp2是否指向同一文件:
判斷stat tuple stat1和stat2是否指向同一個(gè)文件:
把路徑分割成 dirname 和 basename,返回一個(gè)元組:
一般用在 windows 下,返回驅(qū)動(dòng)器名和路徑組成的元組:
分割路徑中的文件名與拓展名:
把路徑分割為加載點(diǎn)與文件:
遍歷path,進(jìn)入每個(gè)目錄都調(diào)用visit函數(shù),visit函數(shù)必須有3個(gè)參數(shù)(arg, dirname, names),dirname表示當(dāng)前目錄的目錄名,names代表當(dāng)前目錄下的所有文件名,args則為walk的第三個(gè)參數(shù):
設(shè)置是否支持unicode路徑名:
import時(shí),如果已經(jīng)import,則不會(huì)重復(fù)執(zhí)行import操作
模塊內(nèi)部的東東屬于全局,所以不能變成兩個(gè)實(shí)例。
解決方法是寫一個(gè)類,然后生成兩個(gè)對(duì)象。
網(wǎng)站標(biāo)題:python模塊接口函數(shù) python 提供接口
URL地址:http://jinyejixie.com/article6/dochiog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站導(dǎo)航、微信公眾號(hào)、自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)