2

我正在将谷歌语音 api 与科尔多瓦应用程序一起使用。

我正在录制音频并使用cordova插件“cordova-plugin-media”将其保存到我的本地驱动器,之后我正在使用cordova-plugin-file的readAsDataUrl()方法读回文件。这正在返回我的 base64 数据。

如果我将此 base 64 数据传递到 google api 服务器,它将始终返回空结果而没有任何错误。下面是相同的代码。

如果有人解决了类似的问题,请帮助我。

var src = "cdvfile://localhost/temporary/recording.m4a";
                    var mediaRec = new Media(src,
                        // success callback
                        function (data) {
                            console.log(data);

                        },

                        // error callback
                        function (err) {

                        });

                    // Record audio
                    //mediaRec.startRecord();

                    var _options = {
                        SampleRate: 16000,
                        NumberOfChannels: 1
                    };

                    mediaRec.startRecordWithCompression(_options);

$cordovaFile.readAsDataURL('cdvfile://localhost/temporary/', 'recording.m4a')
                        .then(function (success) {
                            console.log(success);

                            mediaRec.play();

                            var _payload = {
                                config: {
                                    encoding: 'LINEAR16',
                                    sampleRate: 16000,
                                    languageCode: 'en-US',
                                    maxAlternatives: 30
                                },
                                audio: {
                                    content: success.split(',')[1]
                                }
                            };                          

                            $http.post('https://speech.googleapis.com/v1beta1/speech:syncrecognize?key={{api key}}', _payload)
                                .then(function (data) {
                                    console.log(data);
                                }, function (error) {
                                    console.log(error);
                                });

                        }, function (error) {
                            console.log(error);
                        }); 
4

0 回答 0