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")
fusion_hat.stt.STT

:py:class:`~sunfounder_voice_assistant.stt.vosk.Vosk`の別名です。

class fusion_hat.stt.Vosk(language=None, samplerate=None, device=None, log=None)[ソース]

ベースクラス: object

Vosk STT クラス

DEFAULT_LANGUAGE = 'en-us'
is_ready()[ソース]

Vosk STT の準備ができているか確認します

戻り値:

準備ができている場合は True、そうでなければ False

戻り値の型:

bool

init()[ソース]

Vosk STT を初期化します

_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

wait_for_wake_word()[ソース]

ウェイクワードを待機します

start_listening_wake_words()[ソース]

ウェイクワードのリッスンを開始します

is_waked()[ソース]

ウェイクワードのスレッドが実行中か確認します

戻り値:

実行中なら 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_wake_words(wake_words: list)[ソース]

ウェイクワードを設定します

パラメーター:

wake_words (list) -- ウェイクワードのリスト

language() str[ソース]

現在の言語を取得します

戻り値:

現在の言語

戻り値の型:

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

cancel_download()[ソース]

進行中のダウンロードをキャンセルするための公開メソッド

download_model(lang: str, progress_callback=None, max_retries: int = 5)[ソース]

言語用のモデルをダウンロードします

パラメーター:
  • lang (str) -- Language

  • progress_callback (function, optional) -- 進捗コールバック関数。デフォルトは None です

  • max_retries (int, optional) -- 最大リトライ回数。デフォルトは 5 です

download_progress_hook(tqdm_bar=None, progress_callback=None)[ソース]

ダウンロード進捗フック関数

パラメーター:
  • tqdm_bar (tqdm, optional) -- tqdm 進捗バー。デフォルトは None です

  • progress_callback (function, optional) -- 進捗コールバック関数。デフォルトは None です

stop_listening()[ソース]

ウェイクワードのリッスンを停止します

close()[ソース]

STT を終了します