Ses İşlemleri
Pi v2'de ses oynatma, kayıt ve metin okuma işlemleri için kullanılan fonksiyonlar.
tts(metin, voiceName?)
Metni sese dönüştürür ve oynatır (Text-to-Speech).
Parametreler:
- metin (string) - Okunacak metin
- voiceName (string, opsiyonel) - Kullanılacak ses adı
Dönüş Değeri:
Promise<any>- İşlem sonucu
Örnek:
// Varsayılan ses ile
await tts("Merhaba, hoş geldiniz!");
// Özel ses ile
await tts("Bu mesaj özel ses ile okunuyor", "female_voice");
// Değişken kullanarak
const mesaj = `Sayın ${$arayan}, aramanız önemli.`;
await tts(mesaj);
playSound(voiceId)
Önceden kaydedilmiş ses dosyasını oynatır.
Parametreler:
- voiceId (string) - Oynatılacak ses dosyasının ID'si
Dönüş Değeri:
Promise<any>- İşlem sonucu
Örnek:
try {
await playSound("welcome_message");
await addLog("Ses oynatıldı");
} catch (error) {
await addLog("Ses oynatma hatası:", error);
}
getDigits(voiceId, timeout, maxDigits)
Ses oynatır ve kullanıcıdan rakam girişi bekler.
Parametreler:
- voiceId (string) - Oynatılacak ses dosyasının ID'si
- timeout (number) - Bekleme süresi (milisaniye)
- maxDigits (number) - Maksimum rakam sayısı
Dönüş Değeri:
-
Promise<object>- İşlem sonucu- code - İşlem kodu
- result - Kullanıcının bastığı tuş/tuşlar (string)
- data - Ek veri bilgisi
Örnek:
const response = await getDigits("menu_voice", 5000, 1);
await addLog("Girilen rakam:", response.result); // Örn: "1", "2", "123" vb.
await addLog("İşlem kodu:", response.code);
// Menü örneği
const choice = await getDigits("main_menu", 10000, 1);
switch (choice.result) {
case "1":
await tts("Satış departmanına aktarılıyorsunuz");
break;
case "2":
await tts("Teknik destek departmanına aktarılıyorsunuz");
break;
case "0":
await tts("Operatöre aktarılıyorsunuz");
break;
default:
await tts("Geçersiz seçim, lütfen tekrar deneyin");
}
getDigitsWithTTS(metin, timeout, maxDigit, voiceName?)
Metni okur ve kullanıcıdan rakam girişi bekler.
Parametreler:
- metin (string) - Okunacak metin
- timeout (number) - Bekleme süresi (milisaniye)
- maxDigit (number) - Maksimum rakam sayısı
- voiceName (string, opsiyonel) - Kullanılacak ses adı
Dönüş Değeri:
-
Promise<object>- İşlem sonucu- code - İşlem kodu
- result - Kullanıcının bastığı tuş/tuşlar (string)
- data - Ek veri bilgisi
Örnek:
const response = await getDigitsWithTTS(
"Lütfen 1 ile 9 arasında bir rakam tuşlayın",
8000,
1
);
if (response.result) {
await tts(`${response.result} rakamını seçtiniz`); // Örn: "1 rakamını seçtiniz"
} else {
await tts("Herhangi bir tuşlama algılanmadı");
}
// Özel ses ile
const choice = await getDigitsWithTTS(
"Ana menü için 1, çıkış için 9 tuşlayın",
10000,
1,
"professional_voice"
);
// Çoklu rakam girişi örneği
const pinResponse = await getDigitsWithTTS(
"Lütfen 4 haneli PIN kodunuzu giriniz",
15000,
4
);
if (pinResponse.result && pinResponse.result.length === 4) {
await addLog("Girilen PIN:", pinResponse.result); // Örn: "1234"
await tts("PIN kodunuz alındı");
} else {
await tts("Eksik veya hatalı PIN kodu");
}
setDefaultVoiceName(voiceName)
Varsayılan ses adını ayarlar.
Parametreler:
- voiceName (string) - Varsayılan olarak kullanılacak ses adı
Dönüş Değeri:
- undefined
Örnek:
// Varsayılan sesi ayarla
setDefaultVoiceName("turkish_female");
// Artık tüm TTS çağrıları bu sesi kullanacak
await tts("Bu mesaj varsayılan ses ile okunuyor");
startVoiceRecord()
Ses kaydını başlatır.
Sözdizimi:
await startVoiceRecord()
Dönüş Değeri:
Promise<undefined>- İşlem sonucu
Örnek:
try {
await startVoiceRecord();
await tts("Ses kaydı başladı, mesajınızı bırakın");
} catch (error) {
console.error("Ses kaydı başlatılamadı:", error);
}
stopVoiceRecord()
Ses kaydını durdurur ve kayıt dosyasının base64 içeriğini döndürür.
Sözdizimi:
await stopVoiceRecord()
Dönüş Değeri:
Promise<string>- Kayıt dosyasının base64 içeriği
Örnek:
try {
const recordBase64 = await stopVoiceRecord();
await addLog("Kayıt tamamlandı, base64 uzunluğu:", recordBase64.length);
await tts("Mesajınız kaydedildi, teşekkürler");
// Base64 içeriği ile işlem yapma
const audioData = {
content: recordBase64,
format: "audio/wav",
timestamp: new Date().toISOString()
};
// API'ye gönderme
await post(
"https://api.example.com/audio/upload",
JSON2str(audioData),
{ "Content-Type": "application/json" }
);
} catch (error) {
await addLog("Ses kaydı durdurulamadı:", error);
}
playAudioFromUrl(url)
Belirtilen URL adresindeki ses dosyasını oynatır.
Parametreler:
- url (string) - Oynatılacak ses dosyasının URL adresi
Desteklenen Formatlar:
- WAV
- MP3
- AAC
- FLAC
Dönüş Değeri:
Promise<any>- İşlem sonucu
Örnek:
try {
// MP3 dosyası oynatma
await playAudioFromUrl("https://example.com/audio/welcome.mp3");
await addLog("URL'den ses oynatıldı");
} catch (error) {
await addLog("URL ses oynatma hatası:", error);
}
// WAV dosyası oynatma
const audioUrl = "https://cdn.example.com/sounds/notification.wav";
await playAudioFromUrl(audioUrl);
// Dinamik URL ile
const userId = $arayan;
const personalizedAudio = `https://api.example.com/audio/greeting/${userId}.aac`;
try {
await playAudioFromUrl(personalizedAudio);
} catch (error) {
// Hata durumunda varsayılan mesaj
await tts("Hoş geldiniz!");
}
// FLAC dosyası oynatma
const highQualityAudio = "https://storage.example.com/audio/announcement.flac";
await playAudioFromUrl(highQualityAudio);