Google Text-To-Speech API - PullRequest
       93

Google Text-To-Speech API

70 голосов
/ 27 марта 2012

Я хочу знать, как я могу использовать Google Text-to-Speech API в моем проекте .NET.Я думаю, что мне нужно позвонить по URL, чтобы использовать веб-сервис, но идея для меня не ясна.Кто-нибудь может помочь?

Ответы [ 14 ]

1 голос
/ 22 октября 2016

Поскольку это появилось в чате здесь, и первой страницей по поиску в Google была эта, я решил рассказать о своих выводах, погугляя еще немного XD

вам больше не нужно идти на все, чтобы заставить это работать, просто встаньте на плечи гигантов:

есть стандарт

https://dvcs.w3.org/hg/speech-api/raw-file/tip/webspeechapi.html

и пример

http://html5 -examples.craic.com / google_chrome_text_to_speech.html

по крайней мере, для ваших веб-проектов это должно работать (например, asp.net)

1 голос
/ 26 января 2016

Зайдите на console.developer.google.com логин и получите ключ API или используйте API Microsoft Bing
https://msdn.microsoft.com/en-us/library/?f=255&MSPPError=-2147217396

или даже лучше использовать речевой API AT & T developer.att.com (платный)
Для распознавания голоса

Public Class Voice_recognition

    Public Function convertTotext(ByVal path As String, ByVal output As String) As String
        Dim request As HttpWebRequest = DirectCast(HttpWebRequest.Create("https://www.google.com/speech-api/v1/recognize?xjerr=1&client=speech2text&lang=en-US&maxresults=10"), HttpWebRequest)
        'path = Application.StartupPath & "curinputtmp.mp3"
        request.Timeout = 60000
        request.Method = "POST"
        request.KeepAlive = True
        request.ContentType = "audio/x-flac; rate=8000"  
        request.UserAgent = "speech2text"

        Dim fInfo As New FileInfo(path)
        Dim numBytes As Long = fInfo.Length
        Dim data As Byte()

        Using fStream As New FileStream(path, FileMode.Open, FileAccess.Read)
            data = New Byte(CInt(fStream.Length - 1)) {}
            fStream.Read(data, 0, CInt(fStream.Length))
            fStream.Close()
        End Using

        Using wrStream As Stream = request.GetRequestStream()
            wrStream.Write(data, 0, data.Length)
        End Using

        Try
            Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
            Dim resp = response.GetResponseStream()

            If resp IsNot Nothing Then
                Dim sr As New StreamReader(resp)
                MessageBox.Show(sr.ReadToEnd())

                resp.Close()
                resp.Dispose()
            End If
        Catch ex As System.Exception
            MessageBox.Show(ex.Message)
        End Try

        Return 0
    End Function
End Class

А для преобразования текста в речь: используйте это .

Я думаю, вы поймете это
если нет, то используйте конвертер vbscript в vb / C #.
Все еще не связался со мной.

Я делал это раньше, сейчас не могу найти код, поэтому я не даю вам код напрямую.

1 голос
/ 24 апреля 2015

Я использовал URL, как указано выше: http://translate.google.com/translate_tts?tl=en&q=Hello%20World

И запрашивается с библиотекой Python. Однако, я получаю HTTP 403 FORBIDDEN

В конце концов мне пришлось смоделировать заголовок User-Agent с в браузере , чтобы добиться успеха.

0 голосов
/ 07 февраля 2016
#! /usr/bin/python2
# -*- coding: utf-8 -*-

def run(cmd):
    import os
    import sys
    from subprocess import Popen, PIPE
    print(cmd)
    proc=Popen(cmd, stdin=None, stdout=PIPE, stderr=None, shell=True)
    while True:
        data = proc.stdout.readline()   # Alternatively proc.stdout.read(1024)
        if len(data) == 0:
            print("Finished process")
            break
        sys.stdout.write(data)

import urllib

msg='Hello preety world'
msg=urllib.quote_plus(msg)
# -v verbosity
cmd='curl '+ \
    '--output tts_responsivevoice.mp2 '+ \
    "\""+'https://code.responsivevoice.org/develop/getvoice.php?t='+msg+'&tl=en-US&sv=g2&vn=&pitch=0.5&rate=0.5&vol=1'+"\""+ \
    ' -H '+"\""+'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0'+"\""+ \
    ' -H '+"\""+'Accept: audio/webm,audio/ogg,audio/wav,audio/*;q=0.9,application/ogg;q=0.7,video/*;q=0.6,*/*;q=0.5'+"\""+ \
    ' -H '+"\""+'Accept-Language: pl,en-US;q=0.7,en;q=0.3'+"\""+ \
    ' -H '+"\""+'Range: bytes=0-'+"\""+ \
    ' -H '+"\""+'Referer: http://code.responsivevoice.org/develop/examples/example2.html'+"\""+ \
    ' -H '+"\""+'Cookie: __cfduid=ac862i73b6a61bf50b66713fdb4d9f62c1454856476; _ga=GA1.2.2126195996.1454856480; _gat=1'+"\""+ \
    ' -H '+"\""+'Connection: keep-alive'+"\""+ \
    ''
print('***************************')
print(cmd)
print('***************************')
run(cmd)

Строка:

/getvoice.php?t='+msg+'&tl=en-US&sv=g2&vn=&pitch=0.5&rate=0.5&vol=1'+"\""+ \

отвечает за язык.

tl=en-US

Есть еще один интересный сайт с движками tts, который можно использовать таким образом.

замените o на null iv0na.c0m

хорошего дня

...