I.はじめに
ローカル記録に1.最初のステップ
2.コールBaiduの音声認識SDK
注意事項:音源の音声認識によって必要とBaiduは、ビットレートは256kbpsでなければなりません
第二に、コード
#必要なライブラリをインストールします PIPインストールBaiduのを-AIP #BaiduのSDK PIP pyaudioをインストール
インポートウェーブ インポートpyaudio から AIP インポートAipSpeech DEF レコード():# はデータを定義するブロックストリーム CHUNK = 1024 FORMATを = pyaudio.paInt16 #百度認識したい、次の2つのパラメータは、ビットレートが256kbpsなるように設定されなければならない チャネルを1 =。 RATE = 16000 #録画時間 RECORD_SECONDS = 8 #filenameは書き込む = WAVE_OUTPUT_FILENAMEを" output.wav " #はオブジェクトがPyAudio作成 P- = pyaudio.PyAudio() #オープンストリームの ストリーム= p.open(フォーマット= フォーマット チャネル = CHANNELS、 速度 = RATE、 入力 = 真、 frames_per_buffer = CHUNK) プリント(" *録音" ) #开始录音 フレーム= [] のための I における範囲(0、INT(RATE / CHUNK * RECORD_SECONDS)): データ = ストリーム.read(CHUNK) frames.append(データ) 印刷(" *なさ記録" ) #停止数据流 stream.stop_stream() stream.close() #关闭PyAudio p.terminate() #写入录音文件 WF = wave.open(WAVE_OUTPUT_FILENAME、' WB ' ) wf.setnchannels(チャネル) wf.setsampwidth(p.get_sample_size(FORMAT )) wf.setframerate(RATE) wf.writeframes(B '' .join(フレーム)) wf.close() DEF ASR(): #录音 レコード() "" " 你的APPID AK SK """ APP_ID = " **** ' API_KEY = '**** " SECRET_KEY = ' **** ' クライアント = AipSpeech(APP_ID、API_KEY、SECRET_KEY) #读取文件 デフget_file_content(filePathに): オープン(filePathに、と' RB ' FPとして): リターンfp.read() #识别本地文件 RES = client.asr(get_file_content(' output.wav ')、' WAV '、16000 、{ ' dev_pid ':1536 、 }) プリント(RES) 場合 __name__ ==「__Man__ " : アスリ()
第三に、音声コマンド制御プログラム
インポートウェーブ インポートpyaudio から AIP インポートAipSpeech インポートのWin32API DEF レコード(): #はデータストリーム定義ブロック CHUNK = 1024 FORMATを = pyaudio.paInt16 #百度認識したい、次の2つのパラメータは、ビットレートが256kbpsなるように設定されなければならない チャネルを1 =。 RATE = 16000 #の記録時間 RECORD_SECONDS = 8 #ファイル名を書き込むための WAVE_OUTPUT_FILENAMEを= " output.wav " #は、作成はPyAudioは、オブジェクト のp = pyaudio.PyAudio() #データ・ストリームを開きます ストリーム= p.open(FORMAT = FORMAT、 チャネル = チャネル、 レート = RATE、 入力 = 真、 frames_per_buffer = CHUNK) プリント(" *録音" ) #开始录音 フレーム= [] のための I における範囲(0、INT(RATE / CHUNK * RECORD_SECONDS)): データ = stream.read(CHUNK) frames.append(データ) の印刷(" *完了レコーディング" ) #ストップフロー stream.stop_stream() stream.close() #の近くPyAudioの p.terminate() #の書き込みレコードファイル WF = wave.open(WAVE_OUTPUT_FILENAME、' WB ' ) wf.setnchannels(チャンネル) wf.setsampwidth (p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(B '' .join(フレーム)) wf.close() DEF ASR(): #記録し たレコード() "" " あなたのAPPID AK SKを"" " APP_ID = ' **** ' API_KEY = ' **** ' SECRET_KEYの = ' **** ' クライアント = AipSpeech(SECRET_KEYのAPP_ID、API_KEY、) #は、ファイルを読み込む DEF (filePathに)get_file_content: オープン(filePathに、と' RB ' :)AS FP リターンFP .read() #ローカルファイルを識別 RES = client.asr(get_file_content(' output.wav ')、' WAV '、16000 、{ ' dev_pid ':1536 、 }) IF 否定 res.get(" err_no " ): 戻り res.get(" 結果" )[0]に 戻り res.get(" err_no " ) DEF コントロール(注文): #のプログラムパスに対応するコマンド open_order = { " オープンQQ ":R " C:\プログラムファイル(x86の)\テンセント\ QQ \ビン\ QQScLauncher.exe " " オープンメモ帳":R " D:\メモ帳++ \メモ帳++ EXE " " 開いているブラウザ」:R "C:\ Users \ユーザーffm11 \のAppData \ローミング\ 360se6 \アプリケーション\ 360se.exe " } RES = open_order.get(注文) IF RES: #パラメータ1:指定エラーが関数呼び出し中に発生した親ウィンドウハンドル。それは、Windowsのメッセージ親ウィンドウとして機能します 。#。2パラメータ:指定操作をするために行われる #「オープン」というパラメータlpFileプログラム、またはファイルまたはフォルダで指定されたオープンlpFileパラメータで指定された操作の実装; #「を印刷「操作は、印刷パラメータがlpFileファイルで指定されていることを示し; #」「操作を探検はlpFileパラメータは、フォルダを参照して指定を示している。 #パラメータ3:実行されるように、オープンするプログラムのファイル名をファイル名を指定するか、[参照ファイルにフォルダ名。 #パラメータ4:もしlpFileパラメータが実行可能なプログラムでは、このパラメータは、そうでない場合は、このパラメータがNULLである必要があり、コマンドラインパラメータを指定します。 #パラメータ5:もしlpFileパラメータが実行可能なプログラムで、このパラメータは、ウィンドウを指定します初期表示モードそれ以外の場合は、このパラメータを0に設定する必要があります。 #一般的に、このパラメータ定数で使用される: #1 にするSW_HIDE非表示ウィンドウ、アクティブウィンドウ #をSW_MINIMIZEウィンドウアクティブ状態にするために、ウィンドウを最小化 #1 ながら、それがアクティブ状態になるように、元のサイズと位置とSW_RESTOREディスプレイにウィンドウを #SW_SHOWは、それが中にアクティブ状態になるように、現在のサイズと位置でウィンドウを表示する #SW_SHOWMAXIMIZED最大ウィンドウ、およびアクティベート #SW_SHOWMINIMIZEDウィンドウを最小化し、アクティベート #アクティブウィンドウの変化はないが、SW_SHOWMINNOACTIVEウィンドウが最小化され #1 ウインドウの現在のサイズおよび位置、アクティブウインドウが変更されていないSW_SHOWNAディスプレイ #1 最近でSW_SHOWNOACTIVATEをアクティブウィンドウ変えずに、ウィンドウのサイズと位置を表示 win32api.ShellExecute(0、「オープン」、RESを、「」、「」、1。 ) それ以外: 印刷(「音声コマンドが失敗した」) のIF __name__ ==' __main__ ' : 順序 = ASR() コントロール(order.rstrip(" "))