claude bunu verdi
function speakText(text, lang = 'en-US') {
// Browser desteğini kontrol et
if ('speechSynthesis' in window) {
// Mevcut sesleri al
const voices = window.speechSynthesis.getVoices();
// Yeni bir konuşma nesnesi oluştur
const utterance = new SpeechSynthesisUtterance(text);
// Dil ayarını yap
utterance.lang = lang;
// İngilizce ses bul
const englishVoice = voices.find(voice =>
voice.lang.includes('en') &&
!voice.lang.includes('tr') &&
voice.localService === true
);
// Eğer uygun İngilizce ses bulunduysa kullan
if (englishVoice) {
utterance.voice = englishVoice;
}
// Hız ve perde ayarları (isteğe bağlı)
utterance.rate = 1.0; // Normal hız
utterance.pitch = 1.0; // Normal perde
// Konuşmayı başlat
window.speechSynthesis.speak(utterance);
// Hata durumunda
utterance.onerror = (event) => {
console.error('Konuşma hatası:', event.error);
};
// Konuşma bittiğinde
utterance.onend = (event) => {
console.log('Konuşma tamamlandı');
};
} else {
console.warn('SpeechSynthesis API bu tarayıcıda desteklenmiyor.');
}
}
// Kullanım örneği:
// speakText("Hello, how are you today?", "en-US");
// Tüm mevcut sesleri listelemek için:
function listAvailableVoices() {
const voices = window.speechSynthesis.getVoices();
voices.forEach(voice => {
console.log(`Ses: ${voice.name}, Dil: ${voice.lang}, Local: ${voice.localService}`);
});
}
// Seslerin yüklenmesini bekle ve listele
speechSynthesis.onvoiceschanged = listAvailableVoices;