質問編集履歴
3
出力結果の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -110,6 +110,104 @@
|
|
110
110
|
|
111
111
|
```
|
112
112
|
|
113
|
+
読取ったデータの一部をそのままhexでprintすると8bitの時だけほとんど00で、たまにff、稀にほかの数値
|
114
|
+
|
115
|
+
マイク入力なので、同じデータではない
|
116
|
+
|
117
|
+
```python3
|
118
|
+
|
119
|
+
#!/usr/bin/env python
|
120
|
+
|
121
|
+
#
|
122
|
+
|
123
|
+
# coding:utf-8
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
import pyaudio
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
RECORD_SECONDS = 10
|
132
|
+
|
133
|
+
CHUNK = 1024
|
134
|
+
|
135
|
+
RATE = 8000
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
FORMAT = [pyaudio.paInt16,pyaudio.paUInt8,pyaudio.paInt8,pyaudio.paInt32]
|
142
|
+
|
143
|
+
FORMATN=['pyaudio.paInt16','pyaudio.paUInt8','pyaudio.paInt8','pyaudio.paInt32']
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
audio = pyaudio.PyAudio()
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
k=0
|
152
|
+
|
153
|
+
for i in FORMAT:
|
154
|
+
|
155
|
+
stream = audio.open(format=i, channels=1,
|
156
|
+
|
157
|
+
rate=RATE, input=True,
|
158
|
+
|
159
|
+
input_device_index = 0,
|
160
|
+
|
161
|
+
frames_per_buffer=CHUNK)
|
162
|
+
|
163
|
+
data = stream.read(CHUNK)
|
164
|
+
|
165
|
+
print(FORMATN[k])
|
166
|
+
|
167
|
+
print(data[500:600].hex())
|
168
|
+
|
169
|
+
stream.stop_stream()
|
170
|
+
|
171
|
+
stream.close()
|
172
|
+
|
173
|
+
k=k+1
|
174
|
+
|
175
|
+
audio.terminate()
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
"""
|
182
|
+
|
183
|
+
出力
|
184
|
+
|
185
|
+
pyaudio.paInt16
|
186
|
+
|
187
|
+
e4036a026bff4603300502fe93f92eff520089f839fcf30b930a86f70ff43c025e05e7fefd01b004a0fb5ff90405a407defa37f4c1fb71045b07b6059c003afc91fb74fc8efd24ff6a01d4035002e5fc78fe9d07900622fa48f768fe71fdd3fa75021306
|
188
|
+
|
189
|
+
pyaudio.paUInt8
|
190
|
+
|
191
|
+
ffff0000705446320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
192
|
+
|
193
|
+
pyaudio.paInt8
|
194
|
+
|
195
|
+
ffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
196
|
+
|
197
|
+
pyaudio.paInt32
|
198
|
+
|
199
|
+
c105390335ff460033ff12fdb6009b03d9005500e70112fec2f9b1fb6fff1303b106510470fdcbfbe3fd95fd2d00f305a40401fe8dfb2bfbb9fb4f039f09510267facafed50193fd81ff820410ff0ff987ffdb063305e6020e02e5fc95f7e1f78dfd8607
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
"""
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
```
|
208
|
+
|
209
|
+
|
210
|
+
|
113
211
|
|
114
212
|
|
115
213
|
|
2
代替案を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
### 該当のソースコード
|
20
20
|
|
21
|
-
```
|
21
|
+
```python3
|
22
22
|
|
23
23
|
#!/usr/bin/env python
|
24
24
|
|
@@ -126,6 +126,50 @@
|
|
126
126
|
|
127
127
|
|
128
128
|
|
129
|
+
pyaudioでは回答が得られなかったので、代替案
|
130
|
+
|
131
|
+
arecordの出力をパイプでpythonに取り込む
|
132
|
+
|
133
|
+
できればpythonのみで完結したいので引き続き回答お待ちしております。
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
```python3
|
138
|
+
|
139
|
+
#!/usr/bin/env python
|
140
|
+
|
141
|
+
## coding:utf-8
|
142
|
+
|
143
|
+
# arecord -r 8000 -D plughw:0,0 -d 1 | python3 pipe.py
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
import os,sys
|
148
|
+
|
149
|
+
import numpy as np
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
N=100
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
read_pipe = os.fdopen(sys.stdin.fileno(), 'rb', buffering=N)
|
158
|
+
|
159
|
+
data = np.frombuffer(read_pipe.read(N), dtype='uint8')
|
160
|
+
|
161
|
+
print(data)
|
162
|
+
|
163
|
+
```
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
129
173
|
### 補足情報(FW/ツールのバージョンなど)
|
130
174
|
|
131
175
|
PC nanopi neo2
|
1
タイトルを変更した、タグを追加した
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
pyaudio
|
1
|
+
python3 pyaudio 8bitでマイクからの録音ができない(16bit、32bitではうまくいく)
|
test
CHANGED
File without changes
|