質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

602閲覧

pyaudioで OSError [Errno -9999] Unanticipated host errorが発生してしまう

iwakuratomomi50

総合スコア8

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/16 04:29

前提・実現したいこと

オーディオインターフェイスを使いながら音を再生し,その音を録音したいです.(録音したものを再生するのではなく,事前にある音声ファイルを再生し,録音したいです.)
その際に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Users--\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Users--\AppData\Local\Programs\Python\Python37\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "C:\Users--\Desktop\myportfolio\study_demo\proto_3.py", line 92, in rokuon
plotwin=PlotWindow()
File "C:\Users--\Desktop\myportfolio\study_demo\proto_3.py", line 70, in init
input_device_index = 1)
File "C:\Users--\AppData\Local\Programs\Python\Python37\lib\site-packages\pyaudio.py", line 750, in open
stream = Stream(self, *args, **kwargs)
File "C:\Users--\AppData\Local\Programs\Python\Python37\lib\site-packages\pyaudio.py", line 441, in init
self._stream = pa.open(**arguments)
OSError: [Errno -9999] Unanticipated host error

該当のソースコード

python3

1#音声関係のライブラリ 2 3import pyqtgraph as pg 4from pyqtgraph.Qt import QtCore, QtGui 5import numpy as np 6import sys 7import pyaudio 8import struct 9import wave 10import threading 11 12 13 14def saisei(): 15 CHUNK = 1024 16 filename="C:/Users/~~/Desktop/myportfolio/study_demo/sine_-06_05_05000.wav" 17 18 wf = wave.open(filename, 'rb') 19 20 p = pyaudio.PyAudio() 21 22 stream1 = p.open(format=p.get_format_from_width(wf.getsampwidth()), 23 channels=wf.getnchannels(), 24 rate=wf.getframerate(), 25 output=True, 26 input_device_index = 4) 27 28 """ 29 format : ストリームを読み書きするときのデータ型 30 channels: ステレオかモノラルかの選択 1でモノラル 2でステレオ 31 rate : サンプル周波数 32 output : 出力モード 33 34 """ 35 36 # 1024個読み取り 37 data1 = wf.readframes(CHUNK) 38 39 while data1 != '': 40 stream1.write(data1) # ストリームへの書き込み(バイナリ) 41 data1 = wf.readframes(CHUNK) # ファイルから1024個*2個の 42 43 stream1.stop_stream() 44 stream1.close() 45 p.terminate() 46 47 48 49def rokuon(): 50 class PlotWindow: 51 def __init__(self): 52 #プロット初期設定 53 self.win=pg.GraphicsWindow() 54 self.win.setWindowTitle(u"リアルタイムプロット") 55 self.plt=self.win.addPlot() #プロットのビジュアル関係 56 self.plt.setYRange(-1,1) #y軸の上限、下限の設定 57 self.curve=self.plt.plot() #プロットデータを入れる場所 58 59 #マイクインプット設定 60 self.CHUNK=1024 #1度に読み取る音声のデータ幅 61 self.RATE=44100 #サンプリング周波数 62 self.audio=pyaudio.PyAudio() 63 self.stream2=self.audio.open(format=pyaudio.paInt16, 64 channels=9, 65 rate=self.RATE, 66 input=True, 67 frames_per_buffer=self.CHUNK, 68 input_device_index = 1) 69 70 71 #アップデート時間設定 72 self.timer=QtCore.QTimer() 73 self.timer.timeout.connect(self.update) 74 self.timer.start(10) #10msごとにupdateを呼び出し 75 76 #音声データの格納場所(プロットデータ) 77 self.data2=np.zeros(self.CHUNK) 78 79 def update(self): 80 self.data2=self.AudioInput() 81 self.curve.setData(self.data2) #プロットデータを格納 82 83 def AudioInput(self): 84 ret=self.stream2.read(self.CHUNK) #音声の読み取り(バイナリ) 85 #バイナリ → 数値(int16)に変換 86 #32768.0=2^16で割ってるのは正規化(絶対値を1以下にすること) 87 ret=np.frombuffer(ret, dtype="int16")/32768.0 88 return ret 89 90 plotwin=PlotWindow() 91 if (sys.flags.interactive!=1) or not hasattr(QtCore, 'PYQT_VERSION'): 92 QtGui.QApplication.instance().exec_() 93 94 95 96thread1 = threading.Thread(target=saisei) 97thread2 = threading.Thread(target=rokuon) 98thread1.start() 99thread2.start() 100 101

試したこと

デバックしてみると以下のようにエラーが表示されます.
例外が発生しました: OSError
[Errno -9999] Unanticipated host error
File "C:\Users\fuupo\Desktop\myportfolio\study_demo\proto_3.py", line 70, in init
input_device_index = 1)
File "C:\Users\fuupo\Desktop\myportfolio\study_demo\proto_3.py", line 92, in rokuon
plotwin=PlotWindow()

またマイクの設定はオンになっていることを確認しています

補足情報(FW/ツールのバージョンなど)

初学者故分からないところも多いのですがどなたかご解決できる方がおられましたらよろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問