Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点Js:生成错误的文件类型?_Node.js_Google Translate_Google Text To Speech - Fatal编程技术网

Node.js 节点Js:生成错误的文件类型?

Node.js 节点Js:生成错误的文件类型?,node.js,google-translate,google-text-to-speech,Node.js,Google Translate,Google Text To Speech,我想创建mp3文件的话,我已经给它编程。我正在使用谷歌文本到语音API转换成.mp3。代码工作正常,它也生成文件test.mp3,但不是原始格式的.mp3(它看起来像.mp3文件,无法打开)。有人能帮我吗。 我的代码是: var fs = require('fs'); var request = require('request'); var text = 'Hello World'; var options = { url: 'http://translate.google.com/t

我想创建mp3文件的话,我已经给它编程。我正在使用谷歌文本到语音API转换成.mp3。代码工作正常,它也生成文件test.mp3,但不是原始格式的.mp3(它看起来像.mp3文件,无法打开)。有人能帮我吗。 我的代码是:

var fs = require('fs');
var request = require('request');
var text = 'Hello World';
var options = {
    url: 'http://translate.google.com/translate_tts?ie=UTF-8&q=' + encodeURIComponent(text) + '&tl=en&client=t',
    headers: {
        'Referer': 'http://translate.google.com/',
        'User-Agent': 'stagefright/1.2 (Linux;Android 5.0)'
    }
}

request(options)
    .pipe(fs.createWriteStream('test.mp3'))
我得到了答案-

只需更改
url
,只需使用
+text+
而不是
+encodeURIComponent(text)+


我不知道为什么
encodeURIComponent()
不工作。幸运的是,现在已经修复。

请求特定的URL和这些特定的头,会产生403(“禁止”)。它看起来也不像你在使用官方的API。谢谢@robertklep:你能给我推荐一个正确的吗?恐怕谷歌没有官方的TTS API。
url: 'http://translate.google.com/translate_tts?ie=UTF-8&q=' + encodeURIComponent(text) + '&tl=en&client=t'