こんにちは、ネットワーク経由で音声を送信すると思われるコードを見つけようとしています。送信する音声に問題がありますが、入力した音声ではなく、一連の大きなビープ音が鳴ります
ビープ音が終わると、 EOFError
私はこれを理解しようと過去48時間を費やしました。どんなアイデアでも大歓迎です
関連するコード
ピオーディオをインポート 輸入仕様 システムをインポート チャンク = 320 フォーマット = pyaudio.paInt16 チャネル = 1 レート = 44100 RECORD_SECONDS = 5 ### サーバー機能 ### デフサーバー(): ### ソケットの初期化 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((ホスト、ポート)) s.listen(5) ### 受信ループを開始 True の間: ... elif コマンド == CMD_AUDIO: d = speex.Decoder() d.initialize(speex.SPEEX_MODEID_WB) p = pyaudio.PyAudio() ストリーム = p.open(フォーマット = フォーマット、 チャネル = チャネル、 率 = 率、 入力 = 真、 出力 = 真、 frames_per_buffer = チャンク) #voice = cPickle.loads(decrypt_my_message(msg)) 音声 = cPickle.loads(msg) プリントボイス for i in range(len(voice)): decdata = d.decode(voice[i])#DECODE 私のデータ。(YaY)#DECODE my data. (わーい) stream.write(str(voice), chunk) # データをスピーカーに書き戻す stream.stop_stream() ストリーム.close() p.terminate() d.destroy() メッセージでない場合: 中断 conn.close() ### マイクからデータを読み取る ### デフ sendAudio(): チャンクリスト = [] init_my_audio = speex.Encoder() init_my_audio.initialize(speex.SPEEX_MODEID_WB) p = pyaudio.PyAudio() ストリーム = p.open(フォーマット = フォーマット、 チャネル = チャネル、 率 = 率、 入力 = 真、 出力 = 真、 frames_per_buffer = チャンク) i の範囲 (0, 44100 / チャンク * RECORD_SECONDS): 試す: data = stream.read(チャンク) IOError を除く: 合格 encdata = init_my_audio.encode(データ) chunklist.append(encdata) client(chr(CMD_AUDIO), cPickle.dumps((チャンクリスト), 1)) stream.stop_stream() ストリーム.close() p.terminate() init_my_audio.destroy()