Подтвердить что ты не робот

Скачать mp3 из google перевести текст в речь

Я нашел этот код из Интернета, и он использует перевод текста в текстовом редакторе Google, используя url. вот код:

http://translate.google.com/translate_tts?tl=en&q="hello world"

Я знаю, как назвать это в моем vb.net, но я не знаю, как сохранить mp3 файл из google translate. Я использовал system.speech в vb.net, чтобы иметь эту возможность, но мне особенно нужно получить речь из google translate. так, кто-нибудь знает, как сохранить звуковой файл из google translate, используя этот url? спасибо.

4b9b3361

Ответ 1

EDIT 2015-12-26

По состоянию на 2015-12-21 этот код больше не работает после дальнейших изменений в API TTS Google. Как указано @ncpierson, требуется новый дополнительный параметр tk, и мне сложно определить, как его вычислить в оболочке script. Я буду пересматривать этот ответ с помощью нового редактирования как/когда могу.

Я не уверен в Windows, но в Linux это очень легко из командной строки. Я использую командную строку script для загрузки английского текста текстовых строк:

#!/bin/bash
# write an English text string as an audio file using Google Translate
# usage: en2audio.sh <text>
wget -q -U Mozilla -O "$*.mp3" "http://translate.google.com/translate_tts?ie=UTF-8&client=t&tl=en&q=$*"

Я делаю то же самое с китайским (script немного проще, потому что нет пробелов для разбора слов):

#!/bin/bash
# write a Chinese text string as an audio file using Google Translate
# usage: zh2audio.sh <text>
wget -q -U Mozilla -O $1.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&client=t&tl=zh&q=$1"

Большинство дистрибутивов Linux включают в себя стандарт wget, но его можно легко загрузить (см., например, эта ссылка).

(Благодаря параметру @ncpierson для параметра client=t).

Ответ 2

script, который запускал страница перевода Google, когда я использовал ваш пример, создал файл называемый "translate_tts" без расширения файла.

Один простой способ использовать этот файл - указать браузеру, например. Mozilla [в разделе "ИНСТРУМЕНТЫ" / "ОПЦИИ" /ПРИЛОЖЕНИЯ], чтобы сохранить аудиофайлы - в этом случае я считаю, что это MP3, даже если нет расширения. В любом случае выберите опцию "ACTION" рядом с аудио/волной или аудио /Mpg на "SAVE FILE".

Когда браузер загружает ваш URL-адрес, он загружает файл под названием "translate_tts", независимо от данных. Итак, в вашем случае я бы изменил имя файла на "Привет-World.mp3". Таким образом, у вас теперь есть файл на вашем жестком диске, содержащий требуемый звук, который может воспроизводиться любым аудиоплеером, предпочтительно медиаплеер VLC, поскольку он будет играть практически в любом формате.

Конечно, если вам нужен другой звук, например. "Goodbye-World", вы просто меняете свой URL-адрес к

http://translate.google.com/translate_tts?tl=en&q="Goodbye-World"

и повторите описанные выше шаги, чтобы сохранить файл как "Goodbye-World.mp3".

Ответ 3

Если вы хотите сделать это вручную, щелкните правой кнопкой мыши "Сохранить как...". Пример: проверить свой собственный пример.

Я понятия не имею о vb.net, но я попытаюсь загрузить несколько бит информации через bash script в linux. Я собирался рекомендовать использовать wget, пока не увижу тег vb.net. Проверьте этот поток, это может дать вам некоторую идею. Вы в основном хотите загрузить страницу ссылки, которая является mp3.

Ответ 4

Здесь решение, написанное на Java:

URL url = new URL("http://translate.google.com/translate_tts?tl=en&q=\"hello world\"");
HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
httpcon.addRequestProperty("User-Agent", "anything");
IOUtils.copy(httpcon.getInputStream(), new FileOutputStream("output.mp3"));

Обработка исключений опущена. IOUtils происходит от Apache Commons IO.

Ответ 5

Я пытался написать функцию, которая делает именно то, что у вас есть, плюс немного больше, и после некоторых поисков я смог создать следующий код. Это делает четыре вещи:

  • Получает ли веб-запрос получение файла MP3 из Google TTS
  • Сохраняет MP3 в файл (я помещаю его на один слой глубже в рабочий каталог)
  • Воспроизведение файла с использованием медиа-проигрывателя Windows COM API (может быть включено в качестве ссылки COM в вашем проекте).
  • Сохраняет историю ранее высказанных фраз, поэтому ему не нужно ударять API снова, когда появляется повторяющаяся фраза (в Интернете не очень хорошо, где я планирую установить это).

    Imports System.Net
    Imports System.IO
    Imports System.Text
    
    Dim MP As New MediaPlayer.MediaPlayer
    
    Private Sub SaySomething(TTS As String)
    If Not TTS = "" Then
        If Not System.IO.File.Exists(Environment.CurrentDirectory.ToString() + "/TTS/" + TTS + ".mp3") Then
            Dim WR As HttpWebRequest = HttpWebRequest.Create("http://translate.google.com/translate_tts?tl=en&q=""" + TTS + """")
    
            Dim response As HttpWebResponse = CType(WR.GetResponse(), HttpWebResponse)
    
            Dim receiveStream As Stream = response.GetResponseStream()
    
            Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
    
            If Not System.IO.Directory.Exists(Environment.CurrentDirectory.ToString() + "/TTS") Then
                System.IO.Directory.CreateDirectory(Environment.CurrentDirectory.ToString() + "/TTS")
            End If
    
            Dim fs As New FileStream(Environment.CurrentDirectory.ToString() + "/TTS/" + TTS + ".mp3", FileMode.Create)
    
            readStream.BaseStream.CopyTo(fs)
    
            fs.Close()
            fs.Dispose()
            readStream.Dispose()
            receiveStream.Dispose()
        End If
    
        MP.Open(Environment.CurrentDirectory.ToString() + "/TTS/" + TTS + ".mp3")
    End If
    End Sub
    

Ответ 6

Я разработал полуавтоматический способ получения сгенерированных речевых файлов в 2017 году и разделил все метаданные Google. Это для Firefox и написано на С#. Так что это близко к тому, что вы пытаетесь сделать, но все же не 100%. Я попытался получить файлы напрямую, но Google реализовал некоторые довольно причудливые функции безопасности, которые я, похоже, не мог обойти в это время. Когда я подумал, что подошел, он отправил мне ReCaptcha.

Я открыл его здесь: https://github.com/Goodlookinguy/FFMediaCacheGrabber и также предоставил практическое видео.

Не ложь, я не чувствую себя прекрасно в этом ответе, поскольку это не то, что вы ищете, но все, что я мог сделать, по крайней мере, сейчас, чтобы помочь людям.