ऑडियो और बोली जाने वाली भाषा, उपयोगकर्ता के इरादे को समझने, हमारे आस-पास की दुनिया के बारे में जानकारी रिकॉर्ड करने, और हल की जाने वाली खास समस्याओं को समझने के लिए डेटा के अहम सोर्स हैं. Gemma 3n से शुरू करके, Gemma के साथ प्रॉम्प्ट देने और कॉन्टेंट जनरेट करने के लिए, ऑडियो डेटा का इस्तेमाल किया जा सकता है. इसका इस्तेमाल, ऑडियो का विश्लेषण करने और उसकी व्याख्या करने से जुड़े कई टास्क के लिए किया जा सकता है. इस मॉडल को, बोली जाने वाली 100 से ज़्यादा भाषाओं में स्पीच प्रोसेसिंग से जुड़े ये टास्क हैंडल करने की ट्रेनिंग दी गई है:
- बोली को टेक्स्ट में बदलना (एसटीटी): इसे अपने-आप बोली पहचानने की सुविधा (एएसआर) भी कहा जाता है. यह बोली गई भाषा के ऑडियो डेटा को लेता है और उसे उसी भाषा में टेक्स्ट आउटपुट में बदलता है. ज़्यादा जानें
- ऑटोमेटेड स्पीच ट्रांसलेशन (एएसटी): इसे स्पीच टू टेक्स्ट ट्रांसलेशन (एस2टीटी) के नाम से भी जाना जाता है. यह किसी एक भाषा में बोले गए ऑडियो डेटा को लेता है और उसे दूसरी भाषा में टेक्स्ट में बदलता है. ज़्यादा जानें
इन सुविधाओं का इस्तेमाल कई ऐप्लिकेशन में किया जा सकता है. जैसे:
- आवाज़ से कंट्रोल किए जाने वाले ऐप्लिकेशन इंटरफ़ेस बनाना
- मीटिंग या लेक्चर के लिए, ट्रांसक्रिप्शन सेवाएं बनाना
- एक से ज़्यादा भाषाओं में वॉइस सर्च की सुविधा चालू करना
इस गाइड में, Gemma 3n की ऑडियो प्रोसेसिंग की क्षमताओं के बारे में खास जानकारी दी गई है. इसमें डेटा से जुड़ी बातों, इस्तेमाल के उदाहरणों, और सबसे सही तरीकों के बारे में बताया गया है.
ऑडियो डेटा
डिजिटल ऑडियो डेटा कई फ़ॉर्मैट और रिज़ॉल्यूशन लेवल में उपलब्ध हो सकता है. Gemma के साथ इस्तेमाल किए जा सकने वाले ऑडियो फ़ॉर्मैट, जैसे कि MP3 और WAV फ़ॉर्मैट, आपके चुने गए फ़्रेमवर्क के हिसाब से तय होते हैं. इस फ़्रेमवर्क का इस्तेमाल, साउंड डेटा को टेंसर में बदलने के लिए किया जाता है. Gemma के साथ प्रोसेस करने के लिए ऑडियो डेटा तैयार करते समय, इन बातों का ध्यान रखें:
- टोकन की लागत: ऑडियो के हर सेकंड के लिए 6.25 टोकन लगते हैं.
- ऑडियो चैनल: ऑडियो डेटा को एक ऑडियो चैनल के तौर पर प्रोसेस किया जाता है. अगर मल्टी-चैनल ऑडियो का इस्तेमाल किया जा रहा है, जैसे कि बायां और दायां चैनल, तो डेटा को एक चैनल में कम करने के लिए, चैनलों को हटाएं या साउंड डेटा को एक चैनल में मिलाएं.
- क्लिप की अवधि: 30 सेकंड तक की ऑडियो क्लिप इस्तेमाल करने का सुझाव दिया जाता है. हालांकि, इससे ज़्यादा अवधि की क्लिप भी इस्तेमाल की जा सकती हैं. इनकी अवधि, मॉडल की कॉन्टेक्स्ट विंडो के साइज़ के बराबर होनी चाहिए. इसमें, अनुरोध किए गए आउटपुट टोकन को घटा दिया जाता है.
- सैंपल रेट: टोकनाइज़र के लिए ऑडियो प्रोसेसिंग रेट 16 किलोहर्ट्ज़ है. इसमें 32 मिलीसेकंड के फ़्रेम होते हैं.
- बिट डेप्थ: ऑडियो टोकनाइज़र, हर ऑडियो सैंपल के लिए [-1, 1] रेंज में मौजूद हर फ़्रेम के लिए, फ़्लोट 32-बिट डेटा का इस्तेमाल करता है.
अगर आपको जिस ऑडियो डेटा को प्रोसेस करना है वह इनपुट प्रोसेसिंग से काफ़ी अलग है, तो खास तौर पर चैनल, सैंपल रेट, और बिट डेप्थ के हिसाब से, अपने ऑडियो डेटा को रीसैंपल करें या ट्रिम करें. इससे, मॉडल के ज़रिए हैंडल किए गए डेटा रिज़ॉल्यूशन से मैच किया जा सकेगा.
ऑडियो एन्कोडिंग
Gemma 3n के साथ इस्तेमाल करने के लिए, ऑडियो डेटा को अपने कोड के साथ एन्कोड करते समय, आपको कन्वर्ज़न की सुझाई गई प्रोसेस का पालन करना चाहिए. अगर आपको किसी खास फ़ॉर्मैट में कोड की गई ऑडियो फ़ाइलों, जैसे कि MP3 या WAV में कोड किए गए डेटा के साथ काम करना है, तो आपको पहले इन्हें ffmpeg जैसी लाइब्रेरी का इस्तेमाल करके सैंपल में डिकोड करना होगा. डेटा डिकोड होने के बाद, ऑडियो को मोनो-चैनल में बदलें. साथ ही, इसे [-1, 1] रेंज में 16 kHz float32 वेवफ़ॉर्म में बदलें. उदाहरण के लिए, अगर आपको 44.1 किलोहर्ट्ज़ पर स्टीरियो साइंड 16-बिट पीसीएम पूर्णांक वाली WAV फ़ाइलों के साथ काम करना है, तो यह तरीका अपनाएं:
- ऑडियो डेटा को 16 किलोहर्ट्ज़ पर फिर से सैंपल करें
- दोनों चैनलों की आवाज़ को मिलाकर स्टीरियो से मोनो में डाउनमिक्स करना
- int16 को float32 में बदलें और [-1, 1] की रेंज में स्केल करने के लिए, इसे 32768.0 से भाग दें
बोली लिखाई में बदलें
Gemma 3n को कई भाषाओं में बोली जाने वाली बात को समझने की ट्रेनिंग दी गई है. इससे ऑडियो इनपुट को अलग-अलग भाषाओं में टेक्स्ट में बदला जा सकता है. यहां दिए गए कोड के उदाहरणों में, Hugging Face Transformers का इस्तेमाल करके, ऑडियो फ़ाइलों से टेक्स्ट को ट्रांसक्राइब करने के लिए मॉडल को प्रॉम्प्ट करने का तरीका बताया गया है:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "http://localhost/recording_01.wav"},
{"type": "audio", "audio": "http://localhost/recording_02.wav"},
{"type": "audio", "audio": "http://localhost/recording_03.wav"},
{"type": "text", "text": "Transcribe these audio files in order"},
]
}
]
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
outputs = model.generate(**input_ids, max_new_tokens=64)
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
लाइब्रेरी इंस्टॉल करने के साथ-साथ कोड के ज़्यादा उदाहरण देखने के लिए, Hugging Face Transformers के साथ Gemma को चलाना दस्तावेज़ का ऑडियो सेक्शन देखें.
बातचीत का अपने-आप अनुवाद होने की सुविधा
Gemma 3n को, एक से ज़्यादा भाषाओं में बोले गए शब्दों का अनुवाद करने के लिए ट्रेन किया गया है. इससे, बोले गए ऑडियो का सीधे तौर पर किसी दूसरी भाषा में अनुवाद किया जा सकता है. नीचे दिए गए कोड के उदाहरणों में, Hugging Face Transformers का इस्तेमाल करके, बोले गए ऑडियो को टेक्स्ट में बदलने के लिए मॉडल को प्रॉम्प्ट करने का तरीका बताया गया है:
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
GEMMA_MODEL_ID = "google/gemma-3n-E4B-it"
processor = AutoProcessor.from_pretrained(GEMMA_MODEL_ID, device_map="auto")
model = AutoModelForImageTextToText.from_pretrained(
GEMMA_MODEL_ID, torch_dtype="auto", device_map="auto")
messages = [
{
"role": "user",
"content": [
{"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
{"type": "text", "text": "Transcribe this audio into English, and then translate it into French."},
]
}
]
input_ids = processor.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True, return_dict=True,
return_tensors="pt",
)
input_ids = input_ids.to(model.device, dtype=model.dtype)
outputs = model.generate(**input_ids, max_new_tokens=64)
text = processor.batch_decode(
outputs,
skip_special_tokens=False,
clean_up_tokenization_spaces=False
)
print(text[0])
लाइब्रेरी इंस्टॉल करने के साथ-साथ कोड के ज़्यादा उदाहरण देखने के लिए, Hugging Face Transformers के साथ Gemma को चलाना दस्तावेज़ का ऑडियो सेक्शन देखें.