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

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

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

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

Q&A

解決済

1回答

2626閲覧

OpenAIのWhisper上でWhisper_micでリアルタイム文字起こし起動時にAttributeError

magma189

総合スコア2

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenAI Gym

OpenAI Gymは、強化学習を開発・強化するためのシミュレーション環境です。強化学習における実験や評価環境などを標準化し提供することを目的としています。さらに、結果をアップロードしたり、他の人の実行結果や実装を見ることも可能です。

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows 11

Windows 11は、Windows 10の後継バージョン。それまでのMetroデザインを廃止し、Fluentデザインを導入しています。スタートメニューの構成やウィンドウのデザインの変更の他、Androidアプリをネイティブに実行できます。

0グッド

0クリップ

投稿2023/04/18 08:33

実現したいこと

OpenAIのWhisper上でWhisper_micでリアルタイム文字起こしをしようとしています。
以下のURLに従っています。
参考URL:https://www.kkaneko.jp/ai/repot/micrecog.html
起動時にエラーが発生してしまうので、エラー回避法、調査方法、同現象経験等アドバイスお願いします。

前提

Whisper_micを導入し、PowerShellで以下のコマンドで起動すると、エラーが発生しました。
※Pytorch+CUDA認識させるためにpythonをexeファイル指定で起動しています。
cd whisper_mic
C:\Users\xxx.pyenv\pyenv-win\versions\3.10.9\python.exe mic.py --model medium

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

C:\Users\xxx.pyenv\pyenv-win\versions\3.10.9\python.exe mic.py --model medium
Say something!
Exception in thread Thread-1 (record_audio):
Traceback (most recent call last):
File "C:\Users\magma\whisper_mic\mic.py", line 50, in record_audio
audio = r.listen(source)
File "C:\Users\magma.pyenv\pyenv-win\versions\3.10.9\lib\site-packages\speech_recognition_init_.py", line 465, in listen
assert source.stream is not None, "Audio source must be entered before listening, see documentation for AudioSource; are you using source outside of a with statement?"
AssertionError: Audio source must be entered before listening, see documentation for AudioSource; are you using source outside of a with statement?

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\magma.pyenv\pyenv-win\versions\3.10.9\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Users\magma.pyenv\pyenv-win\versions\3.10.9\lib\threading.py", line 953, in run
self._target(*self._args, **self.kwargs)
File "C:\Users\magma\whisper_mic\mic.py", line 45, in record_audio
with sr.Microphone(sample_rate=16000) as source:
File "C:\Users\magma.pyenv\pyenv-win\versions\3.10.9\lib\site-packages\speech_recognition_init
.py", line 189, in exit
self.stream.close()
AttributeError: 'NoneType' object has no attribute 'close'

該当のソースコード

def __exit__(self, exc_type, exc_value, traceback): try: self.stream.close() finally: self.stream = None self.audio.terminate()

試したこと

以下powershellコマンドでも同じエラーでした。
python mic.py --model medium

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

OpenAIのWhisperで音声ファイルからGPUモードで文字起こしは成功しています。
マイク認識ツールは未導入です。
以下の環境です
GPU:NVIDIA Geforce RTX 3070 Laptop GPU
OS:Windows 11 Home 22H2
torch:1.13.1+cu117
pyenv:pyenv 3.1.1
python:Python 3.10.9
pyenv global:3.10.9
CUDA:11.7
CUDA Tool Kit:V11.7.64
CuDnn:8.9.0
システム環境変数:CUDA_PATH,CUDA_PATH_V11_7,CUDNN の3種設定
インストールツール:pip使用
numba 0.56.4
numpy 1.23.5 (1.24.0以降はバグがあるためダウングレード)

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

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

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

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

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

jbpb0

2023/04/18 23:29

https://zerofromlight.com/blogs/detail/128/#windows10cmd の「Windows10のコマンドプロンプト(cmd)での実装」の、 「まずはデバイスで使用できるマイクのインデックス番号を取得します。取得するには、公式サイドの「Troubleshooting」に記載されている通り以下のように記述して実行します。」 と書かれてるところの下のコードを実行して、使いたいマイクの番号を調べてください マイクの番号が分かったら、上記webページの「マイクから拾われた音声をテキスト化する」のコードのように、 C:\Users\magma\whisper_mic\mic.py の with sr.Microphone(sample_rate=16000) as source: の行に、「device_index=調べたマイクの番号」を追加してみてください
magma189

2023/04/19 10:31

mic.py45行目を with sr.Microphone(sample_rate=16000,device_index=2) as source: と追記し、ヘッドセットマイクを認識して、リアルタイム文字起こしに成功しました。 有用な情報と、親切なアドバイスを頂き、ありがとうございます。
guest

回答1

0

自己解決

jbpb0様のコメントにて解決致しました。ありがとうございます。
質問ステイタスを「解決済」にする方法がわからないため、自己解決欄に記載しております。
埋もれないために、頂いたコメントを以下に転載致します。
■コメント:
https://zerofromlight.com/blogs/detail/128/#windows10cmd
の「Windows10のコマンドプロンプト(cmd)での実装」の、
「まずはデバイスで使用できるマイクのインデックス番号を取得します。取得するには、公式サイドの「Troubleshooting」に記載されている通り以下のように記述して実行します。」
と書かれてるところの下のコードを実行して、使いたいマイクの番号を調べてください
マイクの番号が分かったら、上記webページの「マイクから拾われた音声をテキスト化する」のコードのように、
C:\Users\xxx\whisper_mic\mic.py

with sr.Microphone(sample_rate=16000) as source:
の行に、「device_index=調べたマイクの番号」を追加してみてください
■返信:
mic.py45行目を
with sr.Microphone(sample_rate=16000,device_index=2) as source:
と追記し、ヘッドセットマイクを認識して、リアルタイム文字起こしに成功しました。
有用な情報と、親切なアドバイスを頂き、ありがとうございます。

投稿2023/04/28 03:02

magma189

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問