この記事は筆者オンリーのAdvent Calendar 20251日目の記事です。
現職ではVoip SIP関連の開発業務に携わっております。Rustで作っています。
最近はそこそこSIPの理解ができるようになりましたが、もう一段底力を上げるために本アドベントカレンダーを通してSIPフォンからRUSTでつくったなんちゃってSIPサーバーに電話を行い代理応答するような仕組みを作ってみたいと思います。
ざっくり何をするか
・なんちゃってSIPサーバーをつくる
・電話の音声を認識しテキスト化
・llmに投げて回答をもらう
・音声合成ソフトを使って回答を加工
・応答を返す
ということをやっていこうと思っています。
Rustとは
言わずと知れた、近年人気急上昇中のシステムプログラミング言語です。
Rustの利点は、メモリ安全性が高く、処理速度が速いことです。また、並行処理を安全に記述でき、コンパイラがエラーを検出するため、デバッグの工数を削減し、生産性が向上します。さらに、モジュールシステムやテストツールなど、開発を支援する豊富なツールも備えています
SIPとは
SIP(Session Initiation Protocol)は、インターネット上で音声通話やビデオ通話などのセッションを開始・制御するためのプロトコルです。
こちらに仕様があります。
現在だとRFC3621というものがあります。
こちらは明日以降に説明をしていこうと思います。
音声認識(ASR)とは
ASRとは「Automated Speech Recognition(自動音声認識)」の略で、人間の音声をコンピューターが理解できるテキストに変換する技術です。音声認識を「ASR」と呼ぶことで、人間の発話を自動でテキスト化するシステムやアプリケーションを指します。音声アシスタント、音声検索、会議の文字起こし、コールセンターの通話分析など、さまざまな場面で利用されています。
音声合成とは
音声合成とは、コンピューターが人間の声を人工的に作り出す技術です。テキストデータを読み上げたり、特定の人物の声の特徴を模倣したりすることができ、最近ではAIの発展により、イントネーションや感情のニュアンスまで表現できるようになっています。
大規模言語モデル(llm)とは
大規模言語モデル(LLM)とは、AIの一種で、インターネット上の膨大なテキストデータを学習することで、人間のように文章を理解し、生成する能力を持つモデルです。ディープラーニング(深層学習)技術を基盤とし、文脈に沿った自然な文章作成、要約、翻訳、質問応答など、多様な自然言語処理タスクをこなします。従来の言語モデルと比較して、「データ量」「計算量」「パラメータ数」が飛躍的に増大している点が特徴です。
終わりに
現在、上記の仕組みを実験しながら少しずつ形にしています。最終的には AWS 上でホストし、クラウド環境でも運用できるようにする予定です。
続きは明日から、順を追って記録していきます。