
ai-phone কী?
ai-phone হলো আপনার কম্পিউটারে চলা একটি AI ফোন এজেন্ট। এটি আগত কল গ্রহণ করতে, বহির্গামী কল করতে, লিখিত নির্দেশনা অনুযায়ী কথোপকথন পরিচালনা করতে এবং কোনো বাহ্যিক এজেন্টের সঙ্গে একীভূত করার জন্য ধাপে ধাপে কমান্ড প্রদান করতে পারে।
বর্তমান সংস্করণটি Apple Silicon-যুক্ত macOS-এর জন্য তৈরি। কথোপকথনের ভাষা মডেল রিমোট হলেও, স্পিচ রিকগনিশন ও সংশ্লেষণ MLX-এর মাধ্যমে স্থানীয়ভাবে চলে। ai-phone হোস্ট করা কম্পিউটারটি অবশ্যই সমর্থিত Mac হতে হবে, তবে কলার যেকোনো টেলিফোন বা SIP ক্লায়েন্ট ব্যবহার করতে পারেন।
প্রধান বৈশিষ্ট্য
- আগত ও বহির্গামী কল: সেটআপের সময় যেকোনো একটি দিক কনফিগার করুন বা উভয়টি চালু করুন।
- স্থানীয় স্পিচ প্রসেসিং: স্পিচ রিকগনিশন ও ভয়েস সংশ্লেষণ Mac-এই থাকে।
- নমনীয় ভাষা মডেল: স্থানীয় MLX মডেল, Claude Code বা Codex সাবস্ক্রিপশন, অথবা OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট ব্যবহার করুন।
- SIP ও টেলিফোন সংযোগ: সরাসরি SIP ঠিকানা দিয়ে পরীক্ষা করুন অথবা টেলিফোন নম্বরের জন্য SIP ট্রাঙ্ক, Telnyx অ্যাকাউন্ট বা Twilio অ্যাকাউন্ট সংযুক্ত করুন।
- কমান্ড-লাইন অটোমেশন: একটি প্রম্পট দিয়ে কল শুরু করুন এবং ফলস্বরূপ ট্রান্সক্রিপ্ট গ্রহণ করুন।
- রিলে মোড: অন্য কোনো শেল-সক্ষম এজেন্টকে প্রতিটি কথোপকথনের পালা নিয়ন্ত্রণ করতে দিন।
- ভয়েসের বিকল্প: বিল্ট-ইন ইংরেজি ভয়েসসহ Phonon অথবা গতি সমন্বয়যোগ্য আমেরিকান ও ব্রিটিশ ভয়েসসহ Kokoro ব্যবহার করুন।
ai-phone বর্তমানে ইংরেজি ভাষা এবং একসঙ্গে একটি সক্রিয় কল সমর্থন করে।
প্রয়োজনীয়তা
সমর্থিত প্ল্যাটফর্ম
আপনার Apple Silicon-যুক্ত একটি Mac প্রয়োজন। Intel Mac, Linux এবং Windows বর্তমানে সমর্থিত নয়, কারণ স্পিচ ব্যাকএন্ডগুলো MLX-এর ওপর নির্ভর করে এবং ইনস্টলেশনে প্ল্যাটফর্ম-নির্দিষ্ট ইন্টিগ্রেশন রয়েছে।
মেমরি ও স্টোরেজ
- 8 GB RAM: সেটআপে ছোট 2B মডেল ব্যবহারের সুযোগ থাকে।
- 16 GB RAM: ডিফল্ট 4B মডেলের জন্য প্রস্তাবিত।
- 32 GB RAM: 9B মডেলের জন্য প্রস্তাবিত।
- স্টোরেজ: ডাউনলোড করা মডেল ওজনের জন্য কয়েক গিগাবাইট জায়গা রাখুন। সেটআপ উপলব্ধ ডিস্ক স্পেস পরীক্ষা করে।
সফটওয়্যার ও ফোন সংযোগ
এগিয়ে যাওয়ার আগে Git, Homebrew এবং uv ইনস্টল করুন। ইনস্টলার প্রয়োজনীয় Python প্যাকেজ এবং নেটিভ SIP লাইব্রেরি পরিচালনা করে।
কলের জন্য সরাসরি সংযোগে একটি SIP ঠিকানা ব্যবহার করুন অথবা আপনার নিজস্ব SIP ট্রাঙ্ক, Telnyx অ্যাকাউন্ট বা Twilio অ্যাকাউন্ট দিন। ক্যারিয়ার ফি ও সাবস্ক্রিপশন সীমা প্রযোজ্য হতে পারে।
ai-phone ইনস্টল করুন
রিপোজিটরি ক্লোন করুন, তার ডিরেক্টরিতে প্রবেশ করুন, ইনস্টলার চালান এবং ইন্টার্যাক্টিভ সেটআপ চালু করুন:
git clone https://github.com/oxnw/ai-phone.git
cd ai-phone
./scripts/install.sh
uv run ai-phone setup
সেটআপ প্রক্রিয়ায় আপনাকে জিজ্ঞাসা করা হবে আপনি আগত কল, বহির্গামী কল, নাকি উভয়টি চান। এরপর এটি ভাষা মডেল, ফোন লাইন এবং ভয়েস কনফিগার করে। স্থানীয় মডেলের ক্ষেত্রে, সেটআপ শনাক্ত করা মেমরির ভিত্তিতে একটি বিকল্প সুপারিশ করে এবং প্রয়োজনীয় ওজন ডাউনলোড করে।
আপনার টার্মিনাল সাধারণ ইন্টার্যাক্টিভ প্রম্পটের সঙ্গে ভালোভাবে কাজ না করলে প্লেইন মোড ব্যবহার করুন:
uv run ai-phone setup --plain
ফোন ডেমন চালু করুন
সেটআপের পর রিপোজিটরি ডিরেক্টরি থেকে ডেমন চালু করুন:
uv run ai-phone run
কল গ্রহণ করতে চাইলে এই প্রক্রিয়াটি চালু রাখুন। শুধু বহির্গামী ব্যবহারের ক্ষেত্রে, কল করার আগে এটি চালু করুন এবং কাজ শেষ হলে Ctrl-C দিয়ে বন্ধ করুন।
সেটআপ কোনো ব্যাকগ্রাউন্ড সার্ভিস ইনস্টল করে না। সেটআপের পর বা কম্পিউটার পুনরায় চালু করার পর আপনাকেই ডেমন চালু করতে হবে।
বহির্গামী কল করুন
ডেমন চালু রাখুন এবং রিপোজিটরিতে আরেকটি টার্মিনাল খুলুন। গন্তব্য নম্বর ও কাজের বর্ণনাসহ একটি প্রম্পট দিয়ে call ব্যবহার করুন:
uv run ai-phone call +15555550100 --json \
--prompt "Ask whether they have a table for two at eight tonight."
যে নম্বরে কল করতে চান, +15555550100-এর জায়গায় সেটি লিখুন। কল শেষ হলে কমান্ডটি তার ট্রান্সক্রিপ্ট ফেরত দেয়। প্রতিটি বহির্গামী কলের শুরুতে AI পরিচয় প্রকাশ করা হয়।
অন্যদিকে, আগত কলগুলো সেটআপের সময় সংরক্ষিত অভিবাদন ও নির্দেশনা ব্যবহার করে।
বিনামূল্যে স্থানীয় SIP পরীক্ষা চালান
ক্যারিয়ার কল না করেও আপনি স্থানীয়ভাবে পরীক্ষা করতে পারেন। সেটআপ চালান, আগত কল চালু করুন, A SIP address নির্বাচন করুন এবং ডিফল্ট নাম agent রাখুন। ai-phone ডেমন চালু থাকা অবস্থায় চালান:
pjsua --local-port 5070 sip:agent@127.0.0.1
এটি একটি স্থানীয় SIP ক্লায়েন্টকে লুপব্যাক ঠিকানায় থাকা এজেন্টের সঙ্গে সংযুক্ত করে। ফলে টেলিফোন সরবরাহকারী কনফিগার করার আগে আপনি মৌলিক আগত-কল প্রবাহ যাচাই করতে পারবেন।
রিলে মোড দিয়ে কল নিয়ন্ত্রণ করুন
রিলে মোড শেল অ্যাক্সেস থাকা কোনো বাহ্যিক এজেন্টের জন্য তৈরি। পুরো কথোপকথনের জন্য ai-phone-কে একটি প্রম্পট দেওয়ার পরিবর্তে, বাহ্যিক এজেন্ট কল শুরু করতে, কথা বলতে, শুনতে এবং প্রতিটি উত্তরের পর কী করতে হবে তা ঠিক করতে পারে।
রিলে কল শুরু করুন
uv run ai-phone call +15555550100 --relay --json
পালা করে কথা বলুন ও শুনুন
uv run ai-phone say "Hi, I'd like to book a table for two." --json
uv run ai-phone listen --json
uv run ai-phone say "Eight o'clock, please." --json
কথোপকথন শেষ করুন
uv run ai-phone hangup --say "Thank you. Goodbye." --json
--json ব্যবহার করা প্রতিটি কমান্ড স্ট্যান্ডার্ড আউটপুটে একটি JSON অবজেক্ট লেখে। call কমান্ডটি স্ট্যান্ডার্ড এররেও অগ্রগতির ইভেন্ট লেখে, তাই ইন্টিগ্রেশনগুলোকে এই স্ট্রিম দুটি আলাদাভাবে প্রক্রিয়া করা উচিত।
কোনো সক্রিয় কল না থাকলে, listen --json একটি আগত কলের জন্য অপেক্ষা করে এবং রিলে মোডে সেটি পরিচালনা করে। উত্তর না পাওয়া একটি রিলে টার্নের সময়সীমা ডিফল্টভাবে 25 সেকেন্ড পরে শেষ হয়। কল আইডি, ট্রান্সক্রিপ্ট সংগ্রহ, কনফিগারযোগ্য সময়সীমা এবং এক্সিট কোডের জন্য এজেন্ট কমান্ড রেফারেন্স দেখুন।
মডেল ও ভয়েস নির্বাচন করুন
স্পিচ রিকগনিশন
স্পিচ রিকগনিশনের জন্য ai-phone MLX-এর মাধ্যমে স্থানীয়ভাবে Parakeet ব্যবহার করে।
কথোপকথনের মডেল
ভাষার মডেলটি একটি স্থানীয় MLX মডেল, আপনার Claude Code বা Codex সাবস্ক্রিপশন, অথবা একটি OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট হতে পারে। Setup নির্বাচিত বিকল্পটি কনফিগার করতে সহায়তা করে।
ভয়েস সংশ্লেষণ
Phonon একটি বান্ডেল করা ইংরেজি ভয়েস সরবরাহ করে। Kokoro সামঞ্জস্যযোগ্য বলার গতি সহ আমেরিকান ও ব্রিটিশ ভয়েস দেয়।
আপনি কোনো রিমোট ভাষার মডেল ব্যবহার করলে, সেটি কলের টেক্সট, নির্দেশনা এবং কথোপকথনের ইতিহাস পায়। কোনো বাহ্যিক এজেন্ট ক্লাউড প্রদানকারী ব্যবহার করলে, সেই প্রদানকারীকে সরবরাহ করা যেকোনো ট্রান্সক্রিপ্টও পেতে পারে। স্পিচ রিকগনিশন ও সংশ্লেষণ স্থানীয়ই থাকে, তবে ফোনের অডিও SIP ও RTP-এর মাধ্যমে চলাচল করে।
উন্নত কনফিগারেশনের পরামর্শ
প্রয়োজনীয়তা বদলালে আবার সেটআপ চালান
ভয়েস, মডেল, সক্রিয় কলের দিকনির্দেশনা বা কলার আইডি পরিবর্তন করতে আবার সেটআপ চালান:
uv run ai-phone setup
কনফিগারেশন পরিবর্তনের পর ডেমন পুনরায় চালু করুন, যাতে নতুন সেটিংস কার্যকর হয়।
ক্যারিয়ার যোগ করার আগে স্থানীয় SIP দিয়ে শুরু করুন
প্রথমে লুপব্যাক SIP পরীক্ষা দিয়ে এজেন্ট যাচাই করুন। স্থানীয় কলিং কাজ করলে, নিয়মিত টেলিফোন নম্বরের প্রয়োজন হলে একটি SIP ট্রাঙ্ক, Telnyx বা Twilio কনফিগার করুন। নেটওয়ার্ক-সম্পর্কিত সমস্যার জন্য প্রকল্পের NAT চেকলিস্ট দেখুন।
উপলভ্য মেমরির সঙ্গে মানানসই মডেল নির্বাচন করুন
স্বয়ংক্রিয়ভাবে সবচেয়ে বড় মডেল বেছে নেওয়ার বদলে setup-এর RAM-ভিত্তিক সুপারিশ অনুসরণ করুন। 2B বিকল্পটি কম-মেমরির সিস্টেমের জন্য, আর ডিফল্ট 4B ও বড় 9B মডেলগুলোর জন্য বেশি মেমরি প্রয়োজন।
বর্তমান লেটেন্সি ও পরীক্ষার অবস্থা বিবেচনা করুন
README অনুযায়ী, সর্বশেষ স্থানীয় রানে, উচ্চ মেমরি চাপের মধ্যে প্রথম শ্রাব্য প্রতিক্রিয়ার মধ্যমা সময় ছিল 1.50 সেকেন্ড, যা প্রকল্পের এক-সেকেন্ড লক্ষ্যমাত্রা পূরণ করতে পারেনি। স্থানীয় কল ও ইন্টারাপশন পরীক্ষা চালানো হয়েছে, তবে লাইভ ক্যারিয়ার এবং এন্ড-টু-এন্ড এজেন্ট গ্রহণযোগ্যতা পরীক্ষা এখনও বাকি। ডিপ্লয়মেন্টের প্রস্তুতি মূল্যায়নের সময় প্রকাশিত পরিমাপ এবং লেটেন্সি ইতিহাস দেখুন।
বিস্তারিত রেফারেন্স ব্যবহার করুন
- লাইন, ফরওয়ার্ডিং, কলার আইডি, মডেল এবং CLI কমান্ডের জন্য ব্যবহার নির্দেশিকা।
- উপলভ্য সেটিংসের জন্য উদাহরণ কনফিগারেশন।
- কম্পোনেন্ট ও কলের প্রবাহের জন্য আর্কিটেকচার নির্দেশিকা।
- নেটওয়ার্ক কনফিগারেশনের জন্য NAT চেকলিস্ট।
লাইসেন্স-সংক্রান্ত বিবেচনা
ai-phone AGPL-3.0-or-later-এর অধীনে লাইসেন্সপ্রাপ্ত। এর বান্ডেল করা PJSIP ইন্টারফেস ফাইলগুলো GPLv2-or-later ব্যবহার করে; সফটওয়্যারটি বিতরণ বা সংহত করার আগে প্রকল্পের লাইসেন্স নোট দেখুন।
উপসংহার
ai-phone Apple Silicon Mac-এ একটি AI ফোন এজেন্ট চালানোর জন্য ব্যবহারিক কমান্ড-লাইন কর্মপ্রবাহ সরবরাহ করে। এটি ইনস্টল করার পর একটি মডেল ও SIP লাইন কনফিগার করুন, ডেমন চালু করুন এবং ক্যারিয়ার কল করার আগে স্থানীয়ভাবে পরীক্ষা করুন। অটোমেশনের জন্য, রিলে মোড JSON-উৎপাদনকারী শেল কমান্ডের মাধ্যমে একটি বাহ্যিক এজেন্টকে কাঠামোবদ্ধ, টার্ন-ভিত্তিক নিয়ন্ত্রণ দেয়।
