Gemini می تواند ورودی صوتی را تجزیه و تحلیل و درک کند و موارد استفاده مانند موارد زیر را فعال کند:
- درباره محتوای صوتی توضیح دهید، خلاصه کنید یا به سؤالات پاسخ دهید.
- یک رونویسی از صدا ارائه دهید.
- بخش های خاصی از صدا را تجزیه و تحلیل کنید.
این راهنما به شما نشان می دهد که چگونه از Gemini API برای ایجاد پاسخ متنی به ورودی صوتی استفاده کنید.
ورودی صدا
می توانید داده های صوتی را به روش های زیر در اختیار Gemini قرار دهید:
- قبل از درخواست برای
generateContent
یک فایل صوتی آپلود کنید . - داده های صوتی درون خطی را با درخواست
generateContent
ارسال کنید.
یک فایل صوتی آپلود کنید
برای آپلود فایل صوتی می توانید از Files API استفاده کنید. همیشه زمانی از Files API استفاده کنید که حجم کل درخواست (شامل فایلها، پیام متنی، دستورالعملهای سیستم و غیره) بیشتر از 20 مگابایت باشد.
کد زیر یک فایل صوتی را آپلود می کند و سپس از فایل در یک تماس برای generateContent
استفاده می کند.
from google import genai
client = genai.Client(api_key="GOOGLE_API_KEY")
myfile = client.files.upload(file="path/to/sample.mp3")
response = client.models.generate_content(
model="gemini-2.0-flash", contents=["Describe this audio clip", myfile]
)
print(response.text)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mp3" },
});
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Describe this audio clip",
]),
});
console.log(response.text);
}
await main();
file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
model := client.GenerativeModel("gemini-2.0-flash")
resp, err := model.GenerateContent(ctx,
genai.FileData{URI: file.URI},
genai.Text("Describe this audio clip"))
if err != nil {
log.Fatal(err)
}
printResponse(resp)
AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO
tmp_header_file=upload-header.tmp
# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "https://generativelanguage.googleapis.com/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
-D upload-header.tmp \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"
# Upload the actual bytes.
curl "${upload_url}" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"text": "Describe this audio clip"},
{"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}}]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".candidates[].content.parts[].text" response.json
برای کسب اطلاعات بیشتر در مورد کار با فایلهای رسانه، به Files API مراجعه کنید.
داده های صوتی را به صورت خطی ارسال کنید
به جای آپلود یک فایل صوتی، می توانید داده های صوتی درون خطی را در درخواست generateContent
ارسال کنید:
from google.genai import types
with open('path/to/small-sample.mp3', 'rb') as f:
audio_bytes = f.read()
response = client.models.generate_content(
model='gemini-2.0-flash',
contents=[
'Describe this audio clip',
types.Part.from_bytes(
data=audio_bytes,
mime_type='audio/mp3',
)
]
)
print(response.text)
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const base64AudioFile = fs.readFileSync("path/to/small-sample.mp3", {
encoding: "base64",
});
const contents = [
{ text: "Please summarize the audio." },
{
inlineData: {
mimeType: "audio/mp3",
data: base64AudioFile,
},
},
];
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: contents,
});
console.log(response.text);
// Initialize a Gemini model appropriate for your use case.
model := client.GenerativeModel("gemini-2.0-flash")
bytes, err := os.ReadFile("path/to/small-sample.mp3")
if err != nil {
log.Fatal(err)
}
prompt := []genai.Part{
genai.Blob{MIMEType: "audio/mp3", Data: bytes},
genai.Text("Please summarize the audio."),
}
// Generate content using the prompt.
resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
log.Fatal(err)
}
// Handle the response of generated text
for _, c := range resp.Candidates {
if c.Content != nil {
fmt.Println(*c.Content)
}
}
چند نکته در مورد داده های صوتی درون خطی که باید در نظر داشته باشید:
- حداکثر اندازه درخواست 20 مگابایت است که شامل اعلانهای متنی، دستورالعملهای سیستم و فایلهای ارائهشده به صورت درون خطی است. اگر اندازه فایل شما باعث می شود حجم کل درخواست از 20 مگابایت بیشتر شود، از Files API برای آپلود یک فایل صوتی برای استفاده در درخواست استفاده کنید.
- اگر چندین بار از نمونه صوتی استفاده میکنید، آپلود فایل صوتی کارآمدتر است.
رونوشت بگیرید
برای دریافت رونوشت دادههای صوتی، کافی است آن را در اعلان درخواست کنید:
myfile = client.files.upload(file='path/to/sample.mp3')
prompt = 'Generate a transcript of the speech.'
response = client.models.generate_content(
model='gemini-2.0-flash',
contents=[prompt, myfile]
)
print(response.text)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mpeg" },
});
const result = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Generate a transcript of the speech.",
]),
});
console.log("result.text=", result.text);
// Initialize a Gemini model appropriate for your use case.
model := client.GenerativeModel("gemini-2.0-flash")
// Create a prompt using text and the URI reference for the uploaded file.
prompt := []genai.Part{
genai.FileData{URI: sampleAudio.URI},
genai.Text("Generate a transcript of the speech."),
}
// Generate content using the prompt.
resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
log.Fatal(err)
}
// Handle the response of generated text
for _, c := range resp.Candidates {
if c.Content != nil {
fmt.Println(*c.Content)
}
}
رجوع به مهر زمان شود
می توانید با استفاده از مهرهای زمانی به شکل MM:SS
به بخش های خاصی از یک فایل صوتی مراجعه کنید. به عنوان مثال، دستور زیر یک رونوشت را درخواست می کند که
- 2 دقیقه و 30 ثانیه از ابتدای فایل شروع می شود.
در 3 دقیقه و 29 ثانیه از ابتدای فایل به پایان می رسد.
# Create a prompt containing timestamps.
prompt = "Provide a transcript of the speech from 02:30 to 03:29."
// Create a prompt containing timestamps.
const prompt = "Provide a transcript of the speech from 02:30 to 03:29."
// Create a prompt containing timestamps.
prompt := []genai.Part{
genai.FileData{URI: sampleAudio.URI},
genai.Text("Provide a transcript of the speech from 02:30 to 03:29."),
}
توکن ها را بشمار
روش countTokens
را فراخوانی کنید تا تعداد توکن های موجود در یک فایل صوتی را به دست آورید. به عنوان مثال:
response = client.models.count_tokens(
model='gemini-2.0-flash',
contents=[myfile]
)
print(response)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mpeg" },
});
const countTokensResponse = await ai.models.countTokens({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
]),
});
console.log(countTokensResponse.totalTokens);
tokens, err := model.CountTokens(ctx, genai.FileData{URI: sampleAudio.URI})
if err != nil {
log.Fatal(err)
}
fmt.Printf("File %s is %d tokens", sampleAudio.DisplayName, tokens.TotalTokens)
فرمت های صوتی پشتیبانی شده
Gemini از انواع فرمت های صوتی MIME زیر پشتیبانی می کند:
- WAV -
audio/wav
- MP3 -
audio/mp3
- AIFF -
audio/aiff
- AAC -
audio/aac
- OGG Vorbis -
audio/ogg
- FLAC -
audio/flac
جزئیات فنی در مورد صدا
- Gemini هر ثانیه از صدا را به عنوان 32 نشانه نشان می دهد. به عنوان مثال، یک دقیقه صدا به عنوان 1920 توکن نشان داده می شود.
- جمینی فقط می تواند پاسخ به گفتار انگلیسی زبان را استنباط کند.
- جوزا می تواند اجزای غیر گفتاری مانند آواز پرندگان یا آژیرها را "درک" کند.
- حداکثر طول پشتیبانی از داده های صوتی در یک فرمان 9.5 ساعت است. Gemini تعداد فایل های صوتی را در یک اعلان محدود نمی کند. با این حال، مجموع طول کل فایل های صوتی در یک فرمان نمی تواند از 9.5 ساعت تجاوز کند.
- Gemini فایل های صوتی را با وضوح داده 16 کیلوبیت بر ثانیه پایین می آورد.
- اگر منبع صوتی دارای چندین کانال باشد، Gemini آن کانال ها را در یک کانال واحد ترکیب می کند.
بعدش چی
این راهنما نحوه تولید متن در پاسخ به داده های صوتی را نشان می دهد. برای کسب اطلاعات بیشتر به منابع زیر مراجعه کنید:
- استراتژیهای درخواست فایل : Gemini API از درخواست با دادههای متنی، تصویری، صوتی و ویدیویی پشتیبانی میکند که به عنوان درخواست چندوجهی نیز شناخته میشود.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهد رفتار مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.
- راهنمایی ایمنی : گاهی اوقات مدلهای هوش مصنوعی تولیدی خروجیهای غیرمنتظره مانند خروجیهای نادرست، جانبدارانه یا توهینآمیز تولید میکنند. پس پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجیهایی ضروری است.
Gemini می تواند ورودی صوتی را تجزیه و تحلیل و درک کند و موارد استفاده مانند موارد زیر را فعال کند:
- درباره محتوای صوتی توضیح دهید، خلاصه کنید یا به سؤالات پاسخ دهید.
- یک رونویسی از صدا ارائه دهید.
- بخش های خاصی از صدا را تجزیه و تحلیل کنید.
این راهنما به شما نشان می دهد که چگونه از Gemini API برای ایجاد پاسخ متنی به ورودی صوتی استفاده کنید.
ورودی صدا
می توانید داده های صوتی را به روش های زیر در اختیار Gemini قرار دهید:
- قبل از درخواست برای
generateContent
یک فایل صوتی آپلود کنید . - داده های صوتی درون خطی را با درخواست
generateContent
ارسال کنید.
یک فایل صوتی آپلود کنید
برای آپلود فایل صوتی می توانید از Files API استفاده کنید. همیشه زمانی از Files API استفاده کنید که حجم کل درخواست (شامل فایلها، پیام متنی، دستورالعملهای سیستم و غیره) بیشتر از 20 مگابایت باشد.
کد زیر یک فایل صوتی را آپلود می کند و سپس از فایل در یک تماس برای generateContent
استفاده می کند.
from google import genai
client = genai.Client(api_key="GOOGLE_API_KEY")
myfile = client.files.upload(file="path/to/sample.mp3")
response = client.models.generate_content(
model="gemini-2.0-flash", contents=["Describe this audio clip", myfile]
)
print(response.text)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
async function main() {
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mp3" },
});
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Describe this audio clip",
]),
});
console.log(response.text);
}
await main();
file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
model := client.GenerativeModel("gemini-2.0-flash")
resp, err := model.GenerateContent(ctx,
genai.FileData{URI: file.URI},
genai.Text("Describe this audio clip"))
if err != nil {
log.Fatal(err)
}
printResponse(resp)
AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO
tmp_header_file=upload-header.tmp
# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "https://generativelanguage.googleapis.com/upload/v1beta/files?key=${GOOGLE_API_KEY}" \
-D upload-header.tmp \
-H "X-Goog-Upload-Protocol: resumable" \
-H "X-Goog-Upload-Command: start" \
-H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
-H "Content-Type: application/json" \
-d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null
upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"
# Upload the actual bytes.
curl "${upload_url}" \
-H "Content-Length: ${NUM_BYTES}" \
-H "X-Goog-Upload-Offset: 0" \
-H "X-Goog-Upload-Command: upload, finalize" \
--data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri
# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"text": "Describe this audio clip"},
{"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}}]
}]
}' 2> /dev/null > response.json
cat response.json
echo
jq ".candidates[].content.parts[].text" response.json
برای کسب اطلاعات بیشتر در مورد کار با فایلهای رسانه، به Files API مراجعه کنید.
داده های صوتی را به صورت خطی ارسال کنید
به جای آپلود یک فایل صوتی، می توانید داده های صوتی درون خطی را در درخواست generateContent
ارسال کنید:
from google.genai import types
with open('path/to/small-sample.mp3', 'rb') as f:
audio_bytes = f.read()
response = client.models.generate_content(
model='gemini-2.0-flash',
contents=[
'Describe this audio clip',
types.Part.from_bytes(
data=audio_bytes,
mime_type='audio/mp3',
)
]
)
print(response.text)
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const base64AudioFile = fs.readFileSync("path/to/small-sample.mp3", {
encoding: "base64",
});
const contents = [
{ text: "Please summarize the audio." },
{
inlineData: {
mimeType: "audio/mp3",
data: base64AudioFile,
},
},
];
const response = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: contents,
});
console.log(response.text);
// Initialize a Gemini model appropriate for your use case.
model := client.GenerativeModel("gemini-2.0-flash")
bytes, err := os.ReadFile("path/to/small-sample.mp3")
if err != nil {
log.Fatal(err)
}
prompt := []genai.Part{
genai.Blob{MIMEType: "audio/mp3", Data: bytes},
genai.Text("Please summarize the audio."),
}
// Generate content using the prompt.
resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
log.Fatal(err)
}
// Handle the response of generated text
for _, c := range resp.Candidates {
if c.Content != nil {
fmt.Println(*c.Content)
}
}
چند نکته در مورد داده های صوتی درون خطی که باید در نظر داشته باشید:
- حداکثر اندازه درخواست 20 مگابایت است که شامل اعلانهای متنی، دستورالعملهای سیستم و فایلهای ارائهشده به صورت درون خطی است. اگر اندازه فایل شما باعث می شود حجم کل درخواست از 20 مگابایت بیشتر شود، از Files API برای آپلود یک فایل صوتی برای استفاده در درخواست استفاده کنید.
- اگر چندین بار از نمونه صوتی استفاده میکنید، آپلود فایل صوتی کارآمدتر است.
رونوشت بگیرید
برای دریافت رونوشت دادههای صوتی، کافی است آن را در اعلان درخواست کنید:
myfile = client.files.upload(file='path/to/sample.mp3')
prompt = 'Generate a transcript of the speech.'
response = client.models.generate_content(
model='gemini-2.0-flash',
contents=[prompt, myfile]
)
print(response.text)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mpeg" },
});
const result = await ai.models.generateContent({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
"Generate a transcript of the speech.",
]),
});
console.log("result.text=", result.text);
// Initialize a Gemini model appropriate for your use case.
model := client.GenerativeModel("gemini-2.0-flash")
// Create a prompt using text and the URI reference for the uploaded file.
prompt := []genai.Part{
genai.FileData{URI: sampleAudio.URI},
genai.Text("Generate a transcript of the speech."),
}
// Generate content using the prompt.
resp, err := model.GenerateContent(ctx, prompt...)
if err != nil {
log.Fatal(err)
}
// Handle the response of generated text
for _, c := range resp.Candidates {
if c.Content != nil {
fmt.Println(*c.Content)
}
}
رجوع به مهر زمان شود
می توانید با استفاده از مهرهای زمانی به شکل MM:SS
به بخش های خاصی از یک فایل صوتی مراجعه کنید. به عنوان مثال، دستور زیر یک رونوشت را درخواست می کند که
- 2 دقیقه و 30 ثانیه از ابتدای فایل شروع می شود.
در 3 دقیقه و 29 ثانیه از ابتدای فایل به پایان می رسد.
# Create a prompt containing timestamps.
prompt = "Provide a transcript of the speech from 02:30 to 03:29."
// Create a prompt containing timestamps.
const prompt = "Provide a transcript of the speech from 02:30 to 03:29."
// Create a prompt containing timestamps.
prompt := []genai.Part{
genai.FileData{URI: sampleAudio.URI},
genai.Text("Provide a transcript of the speech from 02:30 to 03:29."),
}
توکن ها را بشمار
روش countTokens
را فراخوانی کنید تا تعداد توکن های موجود در یک فایل صوتی را به دست آورید. به عنوان مثال:
response = client.models.count_tokens(
model='gemini-2.0-flash',
contents=[myfile]
)
print(response)
import {
GoogleGenAI,
createUserContent,
createPartFromUri,
} from "@google/genai";
const ai = new GoogleGenAI({ apiKey: "GOOGLE_API_KEY" });
const myfile = await ai.files.upload({
file: "path/to/sample.mp3",
config: { mimeType: "audio/mpeg" },
});
const countTokensResponse = await ai.models.countTokens({
model: "gemini-2.0-flash",
contents: createUserContent([
createPartFromUri(myfile.uri, myfile.mimeType),
]),
});
console.log(countTokensResponse.totalTokens);
tokens, err := model.CountTokens(ctx, genai.FileData{URI: sampleAudio.URI})
if err != nil {
log.Fatal(err)
}
fmt.Printf("File %s is %d tokens", sampleAudio.DisplayName, tokens.TotalTokens)
فرمت های صوتی پشتیبانی شده
Gemini از انواع فرمت های صوتی MIME زیر پشتیبانی می کند:
- WAV -
audio/wav
- MP3 -
audio/mp3
- AIFF -
audio/aiff
- AAC -
audio/aac
- OGG Vorbis -
audio/ogg
- FLAC -
audio/flac
جزئیات فنی در مورد صدا
- Gemini هر ثانیه از صدا را به عنوان 32 نشانه نشان می دهد. به عنوان مثال، یک دقیقه صدا به عنوان 1920 توکن نشان داده می شود.
- جمینی فقط می تواند پاسخ به گفتار انگلیسی زبان را استنباط کند.
- جوزا می تواند اجزای غیر گفتاری مانند آواز پرندگان یا آژیرها را "درک" کند.
- حداکثر طول پشتیبانی از داده های صوتی در یک فرمان 9.5 ساعت است. Gemini تعداد فایل های صوتی را در یک اعلان محدود نمی کند. با این حال، مجموع طول کل فایل های صوتی در یک فرمان نمی تواند از 9.5 ساعت تجاوز کند.
- Gemini فایل های صوتی را با وضوح داده 16 کیلوبیت بر ثانیه پایین می آورد.
- اگر منبع صوتی دارای چندین کانال باشد، Gemini آن کانال ها را در یک کانال واحد ترکیب می کند.
بعدش چی
این راهنما نحوه تولید متن در پاسخ به داده های صوتی را نشان می دهد. برای کسب اطلاعات بیشتر به منابع زیر مراجعه کنید:
- استراتژیهای درخواست فایل : Gemini API از درخواست با دادههای متنی، تصویری، صوتی و ویدیویی پشتیبانی میکند که به عنوان درخواست چندوجهی نیز شناخته میشود.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهد رفتار مدل را بر اساس نیازهای خاص و موارد استفاده خود هدایت کنید.
- راهنمایی ایمنی : گاهی اوقات مدلهای هوش مصنوعی تولیدی خروجیهای غیرمنتظره مانند خروجیهای نادرست، جانبدارانه یا توهینآمیز تولید میکنند. پس پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجیهایی ضروری است.