fusion_hat.stt モジュール
音声認識 ( STT ) モジュール
音声をテキストに変換します。
サンプル
STT をインポートしてインスタンス化します
>>> from fusion_hat.stt import STT
>>> stt = STT(language="en-us")
音声入力をリッスンします
>>> result = stt.listen(stream=False)
>>> print(result)
Hello
Stream を使用して部分的な結果を取得します
>>> for result in stt.listen(stream=True):
>>> if result["done"]:
>>> print(f"\r\x1b[Kfinal: {result['final']}")
>>> else:
>>> print(f"\r\x1b[Kpartial: {result['partial']}", end="", flush=True)
ウェイクワードを待機します
>>> WAKE_WORDS = ["hey robot", "hello robot"]
>>> stt = STT(language="en-us")
>>> stt.set_wake_words(WAKE_WORDS)
>>> print(f'Wake me with: {WAKE_WORDS}')
Wake me with: ['hey robot', 'hello robot']
>>> result = stt.wait_until_heard()
>>> print("Wake word detected")
Wake word detected
スレッド内のウェイクワード
>>> while True:
>>> stt.start_listening_wake_words()
>>> while not stt.is_waked():
>>> print("Waiting for wake word...")
>>> time.sleep(3)
>>> print("Wake word detected")
- class fusion_hat.stt.Vosk(language=None, samplerate=None, device=None, log=None)[ソース]
ベースクラス:
objectVosk STT クラス
- DEFAULT_LANGUAGE = 'en-us'
- _load_model_list()[ソース]
Load model list from local cache or built-in defaults (offline, no network).
- update_model_list()[ソース]
Fetch latest model list from network and save to cache.
Call this manually when you want to check for new models online. Falls back to local cache if network is unavailable.
- wait_until_heard(wake_words=None, print_callback=<function Vosk.<lambda>>)[ソース]
ウェイクワードが検出されるまで待機します
- パラメーター:
wake_words (list, optional) -- ウェイクワード。デフォルトは None です
print_callback (function, optional) -- 表示用コールバック。デフォルトは None です
- 戻り値:
検出されたウェイクワード
- 戻り値の型:
str
- heard_wake_word(print_callback=<function Vosk.<lambda>>)[ソース]
ウェイクワードを検出したか確認します
- パラメーター:
print_callback (function, optional) -- 表示用コールバック。デフォルトは None です
- 戻り値:
ウェイクワードを検出した場合は True、そうでなければ False
- 戻り値の型:
bool
- stt(filename, stream=False)[ソース]
音声ファイルに対して STT を実行します
- パラメーター:
filename (str) -- 音声ファイルのパス
stream (bool, optional) -- ストリームモード。デフォルトは False です
- 戻り値:
STT 結果
- 戻り値の型:
str
- get_stream_result(wf, recognizer)[ソース]
認識器からストリーミング結果を取得します
- パラメーター:
wf (wave.Wave_read) -- Wave ファイルオブジェクト
recognizer (KaldiRecognizer) -- Vosk 認識器
- 列挙:
str -- STT 結果
- listen(stream=False, device=None, samplerate=None)[ソース]
マイクから音声をリッスンして結果を返します
- パラメーター:
stream (bool, optional) -- ストリームモード。デフォルトは False です
device (int, optional) -- デバイスインデックス。デフォルトは None です
samplerate (int, optional) -- サンプリングレート。デフォルトは None です
- 戻り値:
STT 結果
- 戻り値の型:
str
- _listen_streaming(q, device=None, samplerate=None, callback=None)[ソース]
マイクから音声をリッスンしてストリーミング結果を返します
- パラメーター:
q (queue.Queue) -- 音声データを保存するキュー
device (int, optional) -- デバイスインデックス。デフォルトは None です
samplerate (int, optional) -- サンプリングレート。デフォルトは None です
callback (function, optional) -- コールバック関数。デフォルトは None です
- 列挙:
dict -- STT 結果
- _listen_non_streaming(q, device=None, samplerate=None, callback=None)[ソース]
マイクから音声をリッスンして最終結果を返します
- パラメーター:
q (queue.Queue) -- 音声データを保存するキュー
device (int, optional) -- デバイスインデックス。デフォルトは None です
samplerate (int, optional) -- サンプリングレート。デフォルトは None です
callback (function, optional) -- コールバック関数。デフォルトは None です
- 戻り値:
STT 結果
- 戻り値の型:
str
- set_language(language: str, init=True)[ソース]
言語を設定します
- パラメーター:
language (str) -- 設定する言語
init (bool, optional) -- 認識器を初期化します。デフォルトは True です
- get_model_name(lang: str) str[ソース]
言語のモデル名を取得します
- パラメーター:
lang (str) -- Language
- 戻り値:
モデル名
- 戻り値の型:
str
- get_model_path(lang: str) Path[ソース]
言語のモデルパスを取得します
- パラメーター:
lang (str) -- Language
- 戻り値:
モデルパス
- 戻り値の型:
Path
- is_model_downloaded(lang: str) bool[ソース]
モデルがダウンロード済みか確認します
- パラメーター:
lang (str) -- Language
- 戻り値:
モデルがダウンロード済みなら True、そうでなければ False
- 戻り値の型:
bool
- download_model(lang: str, progress_callback=None, max_retries: int = 5)[ソース]
言語用のモデルをダウンロードします
- パラメーター:
lang (str) -- Language
progress_callback (function, optional) -- 進捗コールバック関数。デフォルトは None です
max_retries (int, optional) -- 最大リトライ回数。デフォルトは 5 です