2016-08-10 37 views
1

私は一度に会話するプログラムを作りようとしています。私はそれを働かせるように見えません。一部のウェブサイトではnumpyアレイを使用していると言われていますが、どうすればよいか分かりません。pyaudioを使って同時に音を鳴らして録音する

import pyaudio 
import wave 
import time 
import multiprocessing as mp 
import pyaudio 
import numpy as np 
import sounddevice as sd 

fs = 44100 
FORMAT = pyaudio.paInt16 
CHANNELS = 2 
RATE = 44100 
CHUNK = 1024 
audio = pyaudio.PyAudio() 
RECORD_SECONDS = 5 
stream = audio.open(format=FORMAT, channels=CHANNELS, 
       rate=RATE, input=True, 
       frames_per_buffer=CHUNK) 
myarray = [] 
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
    data = stream.read(CHUNK) 
    myarray.append(data) 

    myrecording = sd.play(myarray, fs, channels=2) 

Traceback (most recent call last): File "SoundTest.py", line 24, in myrecording = sd.play(myarray, fs, channels=2) line 2170, in check_data dtype = _check_dtype(data.dtype) File "/home/lordvile/.local/lib/python2.7/site-packages/sounddevice.py", line 2316, in _check_dtype raise TypeError('Unsupported data type: ' + repr(dtype)) TypeError: Unsupported data type: 'string32768'

+0

もっと?説明する。 – Michael

+0

@Michael私は本当に分かりません。これがエラーです。トレースバック(最近の最後のコール): ファイル "SoundTest.py"、ライン24、 myrecording = sd.play(myarray、fs、channels = 2) ライン2170、in check_data dtype = _check_dtype(data.dtype) ファイル "/home/lordvile/.local/lib/python2.7/site-packages/sounddevice.py"、2316行目、_check_dtype raise TypeError( 'サポートされていませんデータ型: '+ repr(dtype)) TypeError:サポートされていないデータ型:' string32768 ' –

+0

@SubhadityaMukherjee Tracebakで質問を更新してください。 –

答えて

1

ないあなたがpyaudioを使用する必要がありますが、ここでsounddeviceを使用した例であれば確認してください。

以下の例では、変数ごとに#secondsのマイクからのオーディオを録音します。これはお客様の要件に応じて変更することができます。duration

標準の音声出力(スピーカー)を使用して同じ内容が再生されます。このhere

ワーキングコード

import sounddevice as sd 
import numpy as np 
import scipy.io.wavfile as wav 

fs=44100 
duration = 10 # seconds 
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2, dtype='float64') 
print "Recording Audio for %s seconds" %(duration) 
sd.wait() 
print "Audio recording complete , Playing recorded Audio" 
sd.play(myrecording, fs) 
sd.wait() 
print "Play Audio Complete" 

出力workngされていない何

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32 
Type "copyright", "credits" or "license()" for more information. 
>>> ================================ RESTART ================================ 
>>> 
Recording Audio for 10 seconds 
Audio recording complete , Playing recorded Audio 
Play Audio Complete 
>>> 
関連する問題