1

Konu: Metni Sese Dönüştürme

İnternetten bir örnek buldum. Kendi çabamla biraz düzenlemeler yaptım. Ancak türkçe karakter telaffuzlarında problemler var. Acaba telaffuz problemini düzeltebilir miyiz?

Visual Fox Pro
=tts("Mehmet Kaan Şirin Naz Aksu")

********************
Function tts()
  Lparameters tctext
  m.http_get = "http://translate.google.com/translate_tts?tl=TR&q="+urlencode(m.tctext)
 
  Local ohttp As winhttp.winhttprequest.5.1
 
  m.ohttp = CreateObject("WinHTTP.WinHTTPRequest.5.1")
  m.ohttp.OPEN("GET", m.http_get)
 
  m.ohttp.setrequestheader("Host","translate.google.com")
  m.ohttp.setrequestheader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; tr_TR;  rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)  ")
  m.ohttp.setrequestheader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
  m.ohttp.setrequestheader("Accept-Language","tr_TR;q=0.5")
  m.ohttp.setrequestheader("Accept-Encoding","gzip,deflate")
  m.ohttp.setrequestheader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7")
  m.ohttp.setrequestheader("Keep-Alive","115")
  m.ohttp.setrequestheader("Connection","keep-alive")
 
  m.ohttp.SEND()
 
  Try
    Delete File (Addbs(Sys(2023)) + "trans*.mp3")
  Catch To m.loErr
  EndTry
 
  m.lcFileName =  Addbs(Sys(2023)) + "trans" + ForceExt(Sys(2015),"MP3")
  Set Safety Off
 
  =StrToFile(Cast(m.ohttp.responsebody As Memo),m.lcFileName)
 
  If Vartype(m.oMCI) # "O"
    Public oMCI
    m.oMCI = CreateObject("MCI.MMcontrol")
  EndIf
 
  m.omci.Command = "Close"
  m.omci.FileName = m.lcFileName
  m.omci.AutoEnable=1
  m.omci.Command = "Open"
  m.omci.Command = "Play"
 
  Return
EndFunc
********************
Function urlencode
  Parameters tcvalue, llnoplus
  Local lcresult, lcchar, lnsize, lnx,x
  m.lcresult = ""
 
  For m.lnx = 1 To Len(m.tcvalue)
    m.lcchar = Substr(m.tcvalue,m.lnx,1)
    If Atc(m.lcchar,"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") > 0
      m.lcresult = m.lcresult + m.lcchar
      Loop
    EndIf
    If m.lcchar = " " .and. !m.llnoplus
       m.lcresult = m.lcresult + "+"
       Seek(300)
       Loop
    EndIf
    m.lcresult = m.lcresult + "%" + Right(Transform(Asc(m.lcchar),"@0"),2)
  EndFor
  Return m.lcresult
EndFunc
********************

2

Re: Metni Sese Dönüştürme

Bu kodda kelimeleri telaffuz edenin Google olduğu anlaşılıyor. Bu durumda muhtemelen, beklemekten başka yapacak bir şey yok.

3

Re: Metni Sese Dönüştürme

Evet Ali bey,
Google. Ancak Google dan çeviri bölümünden hoparlörü kullanırsanız telaffuzların gayet güzel olduğunu göreceksiniz.  Yani kodlar aslında google de var. Bu kodlarda, google bölümünde düzeltme olursa kelimeler aynı netlikte telaffuz edilecektir. Belki bilgisi olan arkadaşlar vardır.

4

Re: Metni Sese Dönüştürme

Bazı bilgisayarlarda (xp ve win7) kodları çalıştırdığımda "Clas definition MCI.MMCONTROL is not found" hatası veriyor. Aslında system32 içinnde winhttp.dll dosyası var. Yoksa başka bir dll mi gerekiyor?

5

Re: Metni Sese Dönüştürme

MCI32.OCX register edilmemiş olabilir mi ?

6

Re: Metni Sese Dönüştürme

Sayın Comez,
Dediğiniz gibi. Teşekkür ederim