在 Windows 10 上的节点中,如何获取所有已安装语音的列表?

In node on Windows 10, how can I get a list of all the voices installed?

我试过使用 say js 和以下代码:

 let voices = await say.getInstalledVoices((e, v) => {console.log(v)});
  console.log('voices=', voices);

虽然console.log回调函数中returns一个voices数组,returnsvoices变量为null。

我试过将调用包装在一个 promise 中并得到了类似的结果。

确定有一种简单的单行方式来获得这些声音吗?我很乐意使用 say 以外的东西来这样做。

你不应该使用等待方法。 方法 say.getInstalledVoices returns void

只需使用以下语法即可获取可用声音的列表:

const say = require('say');

function getVoices() {
  return new Promise((resolve) => {
    say.getInstalledVoices((err, voice) => {
      return resolve(voice)
    })
  })
}
async function usingVoices() {
  const voicesList = await getVoices();
  console.log(voicesList)
}
usingVoices()

您可以使用以下语法并在 usingVoices() 方法中做任何您想做的事