音声認識

OpenAIが提供する音声認識オープンソースWhisperとは(5)

ソースを確認するtranscribe関数の定義def transcribe( model: "Whisper", audio: Union, *, verbose: Optional = None, temperature: Union = (0.0, 0.2, 0.4, 0.6, 0.8, 1.0), compression_ratio_threshold: Optional = 2.4, logprob_threshold: Optional = -1.0, no_speech_threshold: Optional = 0.6, condition_on_previous_text: bool = True, initial_prompt: Optional = None, word_timestamps: bool = False, prepend_punctuations: str = "\"'“¿([{-&quot

音声認識

OpenAIが提供する音声認識オープンソースWhisperとは(4)

whisperのデバッグ環境構築whisperのソースコードをチェックアウトするgit clone https://github.com/openai/whisper.gitcd whispertest.pyの作成import sysfrom whisper.transcribe import cliif __name__ == '__main__': sys.exit(cli())test.pyの実行python test.py sample.mp4 --language Englishtranscribe.pydef cli():・・・ model = load_model(model_name, device=device, download_root=model_dir)・・・ソースを確認するload_model関数を読むデフォルト時の引数は、model_name=small, device=cpu, download_root=Noneが使用さ

音声認識

OpenAIが提供する音声認識オープンソースWhisperとは(3)

transcribe関数の確認def transcribe( model: "Whisper", audio: Union, *, verbose: Optional = None, temperature: Union = (0.0, 0.2, 0.4, 0.6, 0.8, 1.0), compression_ratio_threshold: Optional = 2.4, logprob_threshold: Optional = -1.0, no_speech_threshold: Optional = 0.6, condition_on_previous_text: bool = True, initial_prompt: Optional = None, word_timestamps: bool = False, prepend_punctuations: str = "\"'“¿([{-", appen

音声認識

OpenAIが提供する音声認識オープンソースWhisperとは(2)

whisperコマンド実行時のエントリーポイントの確認whisperはpipでインストールする設計なので、whisperのsetup.pyファイル内のentry_pointsを確認する。コマンドラインからwhisperコマンドを実行すると、whisper.transcribe:cliが呼び出されることが確認できる。setup(・・・ entry_points={ "console_scripts": , },・・・)エントリポイント whisper.transcribe:cli のコード確認def cli(): from . import available_models def valid_model_name(name): if name in available_models() or os.path.exists(name): return name raise ValueError(

音声認識

OpenAIが提供する音声認識オープンソースWhisperとは(1)

whisperとは?Whisperは汎用音声認識モデルです。多様なオーディオの大規模なデータセットで訓練されており、マルチタスクモデルでもあり、多言語音声認識、音声翻訳、言語識別などの機能を実行できます。ChatGPTで有名なOpenAIがMITライセンスの下にオープンソースとして公開しています。「Whisperアーキテクチャは、エンコーダーデコーダーTransformerとして実装されたシンプルなエンドツーエンドのアプローチです。入力オーディオは30秒のチャンクに分割され、対数メルスペクトログラムに変換され、それからエンコーダーに渡されます。デコーダーは、特殊トークンと組み合わされた対応するテキストキャプションを予測するようにトレーニングされ、この特殊トークンは、単一モデルが言語識別、フレーズレベルのタイムスタンプ、多言語音声の転記、および英語への音声翻訳などのタスクを実行するように導きます。他の既存のアプローチは、より小規模で、より密にペアされた音声テキストのトレーニングデータセットを使用したり、広範囲ながら非監視の音声事前トレーニングを使用したりすること

HealthKit

バックグラウンドでHealthKitからヘルスデータを読み出すSwiftコードの紹介(4)

HealthKitデータの管理と同期を行うためのクラスimport Foundationimport HealthKitimport UIKitimport Combineprotocol HealthKitStoreProtocol { func authorizeHealthKit(completion: @escaping () -> Void) func startObservingDataChanges(queue: DispatchQueue?, isBackgroundTask: Bool, completion: @escaping () -> Void) func updateCharacteristicIdentifiers() func getMostRecentHealthKitSample<T>(for sampleType: HKSampleType, completion: @escaping (, Date,

HealthKit

バックグラウンドでHealthKitからヘルスデータを読み出すSwiftコードの紹介(3)

DispatchQueueとは? private let queue: DispatchQueue = DispatchQueue(label: "bgTask")DispatchQueueは、Grand Central Dispatch(GCD)の一部であり、並列処理や非同期処理を管理するためのクラスです。DispatchQueueを使用することで、タスクをキューに追加し、適切なスレッドで実行されるように制御することができます。このコードでは、private let queue: DispatchQueue = DispatchQueue(label: "bgTask")で、DispatchQueueのインスタンスを生成しています。ラベルパラメータ "bgTask" を指定していますが、これはキューのデバッグや識別のためのものであり、実際の処理には関与しません。このキューは、バックグラウンドで実行されるタスクを管理するために使用されます。GCDとは?GCD(Grand Central Dispatch)は、macO

HealthKit

バックグラウンドでHealthKitからヘルスデータを読み出すSwiftコードの紹介(2)

バックグラウンドタスクサービスの実装このコードは、バックグラウンドでHealthKitからヘルスデータを読み出すためのサービスを実装しています。BackgroundTaskServiceProtocolプロトコルを定義し、バックグラウンドタスクの登録や処理、データの取得などのメソッドを宣言しています。BackgroundTaskServiceクラスは、BackgroundTaskServiceProtocolプロトコルを採用し、実装しています。このクラスは、ユーザーのデフォルト設定、Auth0サービス、データ同期API、ローカルデータベースなどの依存性を受け取ります。また、バックグラウンドで実行されるタスクの管理や、HealthKitからのデータ取得などを行います。import BackgroundTasksimport UserNotificationsimport HealthKitprotocol BackgroundTaskServiceProtocol { func registerBackgroundTasks() func

HealthKit

バックグラウンドでHealthKitからヘルスデータを読み出すSwiftコードの紹介(1)

アプリ起動時にバックグラウンドタスクを登録このコードは、アプリの起動時にバックグラウンドでHealthKitからヘルスデータを読み出すための一部です。AppDelegateクラスは、UIApplicationDelegateプロトコルを採用し、application(_:didFinishLaunchingWithOptions:)メソッドを実装しています。このメソッドは、アプリが起動する際に呼び出されます。このメソッドの中では、Swinjectフレームワークを使用してDI(Dependency Injection)コンテナからBackgroundTaskServiceProtocolに準拠したサービスのインスタンスを解決しています。解決したサービスが存在する場合は、そのサービスのregisterBackgroundTasks()メソッドを呼び出して、バックグラウンドでのタスクの登録を行います。これにより、アプリがバックグラウンドでヘルスデータを読み出すための準備が整います。import UIKitimport Swinjectclass AppDele

お知らせ

社名変更ならびに本社移転のお知らせ

2024/02/05付で、社名と本店所在地を以下に変更いたしました。株式会社S3LAB371-0835 群馬県前橋市前箱田町387-1 TMOffice#125TM Office x 3Happy前橋というシェアオフィス内の個室を本社として使用することにしました。このシェアオフィスは2023/02/20にオープンしたばかりで、すべての設備が新しく、快適に仕事できる環境が整っています。高崎駅から車で20分くらいのところに位置しています。